
AWS CDKでLambda Durable Functionsがサポートされたので早速試してみた #AWSreInvent
リテールアプリ共創部のるおんです。re:Invent 2025にてリリースが発表された Lambda Durable Functions が AWS CDK v2.232.0 にて、サポートされました。早速試してみたので、その実装方法を共有したいと思います。
Lambda Durable Functionsとは
Lambda Durable Functionsは、re:Invent 2025で発表された新機能で、 最大1年間実行可能な長時間ワークフロー を構築できるAWS Lambdaの新しいオプションです。
AWS Lambda Durable Functionsについての詳しい解説は、以下のブログを参照してください。
やること
今回は以下の構成で、公式ドキュメントにあるサンプルコードをデプロイしてみます。
- CDKでDurable Functions対応のLambdaを作成
- Durable Execution SDKを使ったハンドラーの実装
- デプロイして動作確認
プロジェクト構成
以下のようなディレクトリ構成で進めます。
lambda-durable-function-cdk-test/
├── infra/ # CDKプロジェクト
│ ├── lib/
│ │ └── lambda-durable-function-cdk-test-stack.ts
│ └── package.json
└── server/ # Lambdaハンドラー
├── src/
│ └── index.ts
└── package.json
実装してみる
1. CDKのバージョンを更新
Durable FunctionsはCDK v2.232.0にて追加されたため、package.jsonでバージョンを指定します。
"dependencies": {
+ "aws-cdk-lib": "2.232.0",
"constructs": "^10.0.0"
}
2. CDKスタックの実装
Durable Functionsを有効にするには、Lambda関数にdurableConfigプロパティを設定します。
import { Duration } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as path from 'path';
export class LambdaDurableFunctionCdkTestStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new lambda.Function(this, 'LambdaDurableFunction', {
runtime: lambda.Runtime.NODEJS_24_X,
handler: 'index.handler',
code: lambda.Code.fromAsset(path.join(__dirname, '../../server/dist')),
+ durableConfig: {
+ executionTimeout: Duration.hours(1),
+ retentionPeriod: Duration.days(30),
+ },
});
}
}
ポイントは以下の通りです:
runtime: Durable Functionsは現在(2025年12月6日)、NODEJS_24_Xランタイムで利用可能ですdurableConfig.executionTimeout: Durable実行のタイムアウト時間(最大1年)durableConfig.retentionPeriod: 実行履歴の保持期間(1〜90日、デフォルト14日)
3. リージョンの設定
Lambda Durable Functionsは現在(2025年12月6日時点)、オハイオ(us-east-2)リージョンでのみ利用可能 です。そのため、CDKのエントリーポイントでリージョンを指定します。
#!/usr/bin/env node
import * as cdk from 'aws-cdk-lib/core';
import { LambdaDurableFunctionCdkTestStack } from '../lib/lambda-durable-function-cdk-test-stack';
const app = new cdk.App();
new LambdaDurableFunctionCdkTestStack(app, 'LambdaDurableFunctionCdkTestStack', {
+ // Lambda Durable Functions は現在オハイオ(us-east-2)でのみ利用可能
+ env: { region: 'us-east-2' },
+ });
4. Lambdaハンドラーの実装
Lambdaハンドラーでは、AWS公式のDurable Execution SDKを使用します。
cd server
npm install @aws/durable-execution-sdk-js
{
"name": "lambda-durable-function-server",
"version": "1.0.0",
"private": true,
"dependencies": {
+ "@aws/durable-execution-sdk-js": "^1.0.0"
},
"devDependencies": {
"@types/node": "^22.0.0",
"typescript": "~5.7.0"
}
}
Lambda関数の中身を実装します。
公式ドキュメントにあるサンプルコードをそのまま貼り付けます。
import {
DurableContext,
withDurableExecution,
} from "@aws/durable-execution-sdk-js";
export const handler = withDurableExecution(
async (event, context) => {
const orderId = event.orderId;
// ステップ1: 注文のバリデーション
const validationResult = await context.step(async (stepContext) => {
stepContext.logger.info(`Validating order ${orderId}`);
return { orderId, status: "validated" };
});
// ステップ2: 決済処理
const paymentResult = await context.step(async (stepContext) => {
stepContext.logger.info(`Processing payment for order ${orderId}`);
return { orderId, status: "paid", amount: 99.99 };
});
// 外部確認をシミュレートするために10秒待機
// この間、コンピュート料金は発生しない
await context.wait({ seconds: 10 });
// ステップ3: 注文の確定
const confirmationResult = await context.step(async (stepContext) => {
stepContext.logger.info(`Confirming order ${orderId}`);
return { orderId, status: "confirmed" };
});
return {
orderId: orderId,
status: "completed",
steps: [validationResult, paymentResult, confirmationResult],
};
}
);
SDKのwithDurableExecutionでハンドラーをラップし、context.step()やcontext.wait()などのDurable操作を使用します。
詳細は公式ドキュメントを参照してください。
5. デプロイ・動作確認
まずは、server/src/index.tsをビルドします。
cd server
npm run build
次に、CDKプロジェクトからデプロイします。
オハイオリージョンでCDKを使うのが初めての場合は、まずBootstrapを実行してください。
cd infra
cdk bootstrap --region us-east-2 # オハイオリージョンでCDKを使うのが初めての場合、Bootstrapを実行
cdk deploy
無事Lambda関数が作成されました。

Lambda関数の詳細を確認すると、Durable Functionsが有効になっていることが確認でき、実際に実行すると問題なくDurable Functionsの機能が利用できることが確認できました!

おわりに
AWS CDK v2.232.0でLambda Durable Functionsがサポートされ、長時間実行ワークフローをCDKで簡単に構築できるようになりました。IaCで管理したい方にとっては嬉しいアップデートではないでしょうか。
durableConfigを設定するだけでDurable Functionsが有効になり、Durable Execution SDKを使うことで、チェックポイント管理やリトライ処理を意識せずに堅牢なワークフローを実装できます。
re:Invent 2025でDurable Functionsが発表されてからわずか数日でCDKのL2対応がリリースされたのは流石ですね。AWSさんのLambda Durable Functionsに対する本気度が伝わってきます
以上、ラスベガスからお送りしました!参考になれば幸いです。
参考







