Serverless Express v5 (Beta) で Node.js 24 がサポートされたので AWS Lambda で動かしてみた
こんにちは、製造ビジネステクノロジー部の若槻です。
Express をサーバーレス環境で実行できる Serverless Express で v5 (Beta) がリリースされ、Node.js 24 がサポートされました。
AWS Lambda の Node.js ランタイムでも最新バージョンとして 24 がサポートされているので、これでベータ版ではありますが、Serverless Express を使っている実装でも Node.js 24 ランタイムを利用可能になりました。
今回は、Serverless Express v5 を実際に AWS Lambda 関数上で動かしてみました。
やってみた
パッケージインストール
Express v5 をインストールします。
npm install express@latest @types/express
Express v5 のサポートは2024年末にされています。
Serverless Express v5 (Beta) をインストールします。
npm install @codegenie/serverless-express@beta
ハンドラーコード
Serverless Express を Lambda 関数上で動かすハンドラーコード (TypeScript) です。
import serverlessExpress from "@codegenie/serverless-express";
import express, { Request, Response } from "express";
const app = express();
app.get("/hello", async (_: Request, res: Response): Promise<void> => {
res.status(200).send({ message: "Hello, world!" });
});
export const handler = serverlessExpress({ app });
Express は ESM 非対応なので、必要に応じて esModuleInterop を設定します。
{
"compilerOptions": {
"esModuleInterop": true
}
}
CDK コード
API Gateway REST API の Lambda プロキシ統合のリソースは AWS CDK で実装します。
import * as cdk from "aws-cdk-lib";
import * as apigateway from "aws-cdk-lib/aws-apigateway";
import * as lambda from "aws-cdk-lib/aws-lambda";
import * as lambda_nodejs from "aws-cdk-lib/aws-lambda-nodejs";
import { Construct } from "constructs";
export class SampleStack extends cdk.Stack {
constructor(scope: Construct, id: string) {
super(scope, id);
/**
* Lambda Function
*/
const handler = new lambda_nodejs.NodejsFunction(this, "Handler", {
entry: "src/handler.ts",
runtime: lambda.Runtime.NODEJS_24_X, // Node.js 24 ランタイムを指定
});
/**
* API Gateway REST API
*/
new apigateway.LambdaRestApi(this, "RestApi", {
handler,
});
}
}
上記をデプロイしてリソースを作成します。
動作確認
API を呼び出すと、期待通りのレスポンスが返りました。良さそうですね。
$ curl https://v9lnm7ytj7.execute-api.ap-northeast-1.amazonaws.com/prod/hello
{"message":"Hello, world!"}
破壊的変更
ドキュメントを見ると、v4 から v5 へのアップデートで破壊的変更がいくつかあるようです。
まずサポートされる Node.js の最小バージョンが 24 になりました。22 以前でも使えないことは無さそうですが、v5 を使うなら確実に 24 以上を使った方が良さそうです。
そして、幾つかのメソッドやオプションの削除などが行われていますが、Serverless Express v4 の最新の使い方をしていれば問題無いように見受けられます。
おわりに
Serverless Express v5 (Beta) で Node.js 24 がサポートされたので AWS Lambda で動かしてみました。
v5 (Beta) がリリースされたのは12月初旬ごろだったので、GA は遅くとも2026年前半くらいにななるのでは無いでしょうか。今しばらく待ちましょう。
ちなみに標題と少しズレるのですが、そういえば Serverless Express の README にあまり詳しいサンプルコードが掲載されていないなあとソースコードを探っていると、サンプルコード集は下記にまとめられていました。
Lambda プロキシ統合でのサンプルだと下記です。今後はこれを参考コードとして共有しても良さそうですね。
以上








