2026年10月15日(米国時間)、AWSは「AWS Lambda Durable Execution SDK for Go」の一般提供(GA)を発表しました。Go言語で、途中で止まっても続きから再開できる「長く続く処理(ワークフロー)」をLambdaで書けるようにするSDKです。この記事では、Lambda durable functions(デュラブル関数)とは何か、Go版で何ができるようになったのかを、初心者向けにまとめます。

そもそもAWS Lambdaとは?
AWS Lambdaは、サーバーを自分で用意せずにコードを動かせる「サーバーレス」のサービスです。イベント(ファイルのアップロードやAPI呼び出しなど)をきっかけに関数が動きます。サーバーレスの基本はサーバーレスの世界を徹底解説もどうぞ。
Lambda durable functionsとは?
ふつうのLambda関数は「呼ばれて、処理して、終わる」短い処理が得意です。一方で、「承認されるまで待つ」「外部のイベントが来るまで待つ」といった長い処理は、進み具合を自分で記録する仕組みが必要でした。
Lambda durable functionsは、Lambdaのイベント駆動のモデルを拡張したもので、AWSの説明では次の特徴があります。
- 処理の進み具合を自動でチェックポイント(保存)する
- 外部のイベントを待つ間、最大1年まで実行を一時停止できる
途中で止まっても、再開時に関数を最初から実行し直し、完了済みのステップは保存した結果を使って飛ばす(リプレイ)ので、実質的に続きから進められます。そのため、自前で「どこまで終わったか」を管理するコードを書かずに済みます。
Go版SDKで何が変わった?
今回、Go言語向けのSDKが一般提供になり、Goの開発者もdurable functionsをGoらしい書き方で使えるようになりました。SDKには次のような機能があります。
- ステップ(steps):処理の進み具合を記録する単位
- コールバック連携:人やAIエージェントの判断を途中にはさむ(human/agent-in-the-loop)
- durable invocation:関数から関数を確実につなげて呼び出す
- wait(待機):効率よく処理を一時停止する
どんな用途に向いている?
AWSは例として次のような用途を挙げています。
- インフラの自動化
- 承認ゲート付きのデプロイ(段階的なロールアウト)
- AIモデルを呼び出し、人のレビューを待ってから進むパイプライン

開発の流れ
go getでSDKをGoモジュールに追加する- ふつうのGoのLambda関数と同じように、単一の静的バイナリとして
provided.al2023ランタイムにデプロイする - デプロイ前に、
durabletestパッケージでネットワークやAWS認証情報なしでワークフロー全体を手元でテストできる durablelintという解析ツールで、再開時にワークフローを壊してしまうコードを事前に見つけられる
再開のしくみがあるぶん、「再開したときに同じ結果にならないコード」が問題になりやすいため、それをチェックするツールが用意されている点がポイントです。具体的なAPIや書き方は、公式の開発者ガイドとGitHubのSDKリポジトリで確認してください。
料金と利用できるリージョン
発表文には具体的な料金は書かれておらず、リージョンごとの提供状況は「AWS Capabilities by Region」、料金は「AWS Lambda Pricing」を見るよう案内されています。使う前に公式ページで確認してください。
まとめ
- Lambda durable functionsは、進み具合を自動保存し、最大1年まで待機できる「長く続く処理」向けのLambdaの仕組み。
- 2026年10月15日、Go向けSDKが一般提供になった。
- steps・コールバック・durable invocation・waitをGoで書ける。
durabletestで手元テスト、durablelintで再開時に問題になるコードを検出できる。
処理を小さく分けて組み合わせる考え方はマイクロサービスアーキテクチャとはでも紹介しています。

コメント