Lambda durable functionsとは?Go版SDKの一般提供で何ができるかをやさしく解説

Lambda durable functionsとGo版SDKの一般提供を解説する記事のアイキャッチ

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

durable functionsのワークフロー図:最初の処理を実行して記録、チェックポイントで進み具合を自動保存、承認やイベントを待つ間は最大1年まで一時停止し、続きの処理を実行。再開時は関数を最初から実行し直し、完了済みのステップは保存した結果で飛ばす(リプレイ)
目次

そもそも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モデルを呼び出し、人のレビューを待ってから進むパイプライン
AIが下書きし、人がレビューする間は待機、承認後に次の処理を自動で実行するパイプラインの図

開発の流れ

  1. go getでSDKをGoモジュールに追加する
  2. ふつうのGoのLambda関数と同じように、単一の静的バイナリとしてprovided.al2023ランタイムにデプロイする
  3. デプロイ前に、durabletestパッケージでネットワークやAWS認証情報なしでワークフロー全体を手元でテストできる
  4. 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で再開時に問題になるコードを検出できる。

処理を小さく分けて組み合わせる考え方はマイクロサービスアーキテクチャとはでも紹介しています。

出典

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

社内エンジニアとして、SREとセキュリティの仕事をしています。サーバーの構築や運用、クラウド環境の設計にも関わってきました。趣味はゲームと漫画・アニメ。

コメント

コメントする

目次