Lambda の耐久性のある関数
Lambda の耐久性のある関数により、中断しても信頼性の高い進行状況を維持しながら、最大 1 年間実行できる回復力のある複数ステップのアプリケーションおよび AI ワークフローを構築できます。耐久性のある関数が実行されると、この完全なライフサイクルは耐久性のある実行と呼ばれ、チェックポイントを使用して進行状況が追跡され、再生を通じて障害から自動的に復旧し、完了した作業をスキップしながら最初から再実行されます。
各関数内では、耐久性のあるオペレーションを基礎的な構成要素として使用します。ステップでは、組み込みの再試行および進行状況の追跡機能でビジネスロジックが実行されますが、待機はコンピューティング料金を発生させずに実行が停止されます。ヒューマンインザループのワークフローや外部依存関係のポーリングなど、長時間のプロセスに最適です。注文の処理、マイクロサービスの調整、エージェント AI アプリケーションのオーケストレーションを問わず、ユーザーが使い慣れたプログラミング言語でコードを記述している間に、耐久性のある関数は状態を自動的に維持し、障害から復旧します。
主な利点
回復力のあるコードを自然に記述: 使い慣れたプログラミングコンストラクトを使用して、障害を自動的に処理するコードを記述します。組み込みチェックポイント、透過的な再試行、自動復旧により、ビジネスロジックが明確で焦点を合わせた状態が維持されます。
使用した分のみ支払う: 待機オペレーション中、関数はコンピューティング料金を発生せずに停止します。数時間または数日間待機する長時間のワークフローでは、アイドル待機ではなく、実際の処理時間に対してのみ料金が発生します。
運用の単純性: Lambda のサーバーレスモデルを使用すると、インフラストラクチャを管理せず、ゼロへのスケーリングを含む自動スケーリングを実現できます。耐久性のある関数は状態管理、再試行ロジック、障害復旧を自動的に処理し、運用上のオーバーヘッドを削減します。
仕組み
内部では、耐久性のある関数はチェックポイントや再生メカニズムを使用する通常の Lambda 関数であり、ユーザー定義の停止ポイント (耐久性のある実行と一般的に呼ばれる) を通じて進行状況を追跡し、長時間のオペレーションをサポートします。耐久性のある関数によって再試行などの待機ポイントまたは中断から再開されると、システムで再生が実行されます。再生中、コードは最初から実行されますが、完了したオペレーションを再実行せずに、保存された結果を使用して完了したチェックポイントをスキップします。この再生メカニズムにより、長時間実行を有効にしながら一貫性を確保できます。
関数が一時停止または中断から再開されると、システムによって再生が実行されます。再生中、コードは最初から実行されますが、完了したオペレーションを再実行せずに、保存された結果を使用して完了したチェックポイントをスキップします。この再生メカニズムにより、長時間実行を有効にしながら一貫性を確保できます。
このチェックポイントと再生メカニズムをアプリケーションで活用するため、Lambda は耐久性のある実行 SDK を提供します。SDK によってチェックポイントおよび再生の管理による複雑さが抽象化され、コードで使用する耐久性のあるオペレーションと呼ばれる単純なプリミティブが公開されます。SDK は JavaScript、TypeScript、Python で利用可能で、既存の Lambda 開発ワークフローとシームレスに統合できます。
SDK を使用すると Lambda イベントハンドラーをラップし、イベントと並行して DurableContext が提供されます。このコンテキストにより、ステップや待機などの耐久性のあるオペレーションにアクセスできます。関数ロジックは通常のシーケンシャルコードとして記述しますが、サービスを直接呼び出さずに、これらの呼び出しを自動チェックポイントおよび再試行のステップでラップします。実行を一時停止する必要がある場合、料金を発生させずに関数を停止する待機を追加します。SDK によって複雑な状態管理および再生がすべて内部で処理されるため、コードはクリーンで読みやすい状態が維持されます。
耐久性のある関数を使用するタイミング
短期間の調整: 障害時の自動ロールバックにより、複数のサービス間で支払い、インベントリ、配送を調整します。完了の保証により、検証、支払い承認、インベントリ割り当て、履行を通じて注文を処理します
自信を持って支払いを処理する: 障害中にトランザクション状態を維持し、再試行を自動的に処理する回復力のある支払いフローを構築します。複数ステップの認可、不正チェック、決済を支払いプロバイダー間で調整し、ステップ間で完全な監査可能性を実現します。
信頼性の高い AI ワークフローの構築: モデル呼び出しを連鎖し、人間のフィードバックを取り入れ、障害発生時に長時間実行されるタスクを決定的に処理する複数ステップの AI ワークフローを作成します。停止後に自動的に再開し、アクティブな実行時間に対してのみ支払います。
複雑な注文履行の調整: 組み込みレジリエンスでインベントリ、支払い、配送、通知システム間の注文処理を調整します。部分的な障害を自動的に処理し、中断しても順序の状態を維持し、コンピューティングリソースを消費せずに外部イベントを効率的に待機します。
複数ステップのビジネスワークフローの自動化: 数日または数週間に及ぶ従業員のオンボーディング、ローン承認、コンプライアンスプロセスの信頼性の高いワークフローを構築します。プロセスのステータスや履歴を完全に可視化しながら、人間による承認、システム統合、スケジュールされたタスクの全体でワークフロー状態を維持します。