Lambda の耐久性のある関数を作成する
Lambda の耐久性のある関数の使用を開始するには、Lambda コンソールを使用して耐久性のある関数を作成します。数分で、ステップを使用してチェックポイントベースの実行のデモンストレーションを待機する耐久性のある関数を作成してデプロイできます。
チュートリアルを実行すると、DurableContext オブジェクトの使用方法、ステップを含むチェックポイントの作成、待機で実行の一時停止など、基礎的な耐久性のある関数の概念について学習します。待機後に関数が再開されると、再生が機能する方法についても説明します。
簡単のために、関数の作成には Python または Node.js ランタイムのいずれかを使用します。これらはインタープリター言語なので、コンソールの組み込みコードエディタで関数のコードを直接編集できます。
ヒント
サーバーレスソリューションを構築する方法については、「サーバーレスデベロッパーガイド」を参照してください。
前提条件
AWS アカウント がない場合は、以下のステップを実行して作成します。
AWS アカウント にサインアップするには
https://portal.aws.amazon.com/billing/signup
を開きます。 オンラインの手順に従います。
サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。
AWS アカウントにサインアップすると、AWS アカウントのルートユーザーが作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティのベストプラクティスとして、ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。
サインアップ処理が完了すると、AWS からユーザーに確認メールが送信されます。https://aws.amazon.com/
AWS アカウントにサインアップしたら、AWS アカウントのルートユーザーをセキュリティで保護し、AWS IAM アイデンティティセンター を有効にして、管理ユーザーを作成します。これにより、日常的なタスクにルートユーザーを使用しないようにします。
AWS アカウントのルートユーザー をセキュリティで保護する
-
[ルートユーザー] を選択し、AWS アカウント のメールアドレスを入力して、アカウント所有者として AWS マネジメントコンソール
にサインインします。次のページでパスワードを入力します。 ルートユーザーを使用してサインインする方法については、「AWS サインイン ユーザーガイド」の「ルートユーザーとしてサインインする」を参照してください。
-
ルートユーザーの多要素認証 (MFA) を有効にします。
手順については、「IAM ユーザーガイド」の「AWS アカウント ルートユーザーの仮想 MFA デバイスを有効にする (コンソール)」を参照してください。
管理アクセスを持つユーザーを作成する
-
IAM アイデンティティセンターを有効にします。
手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「AWS IAM アイデンティティセンター の有効化」を参照してください。
-
IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。
IAM アイデンティティセンターディレクトリ をアイデンティティソースとして使用するチュートリアルについては、「AWS IAM アイデンティティセンター ユーザーガイド」の「デフォルトの IAM アイデンティティセンターディレクトリ を使用してユーザーアクセスを設定する」を参照してください。
管理アクセス権を持つユーザーとしてサインインする
-
IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。
IAM アイデンティティセンターユーザーを使用してサインインする方法については、「AWS サインイン ユーザーガイド」の「AWS アクセスポータルにサインインする」を参照してください。
追加のユーザーにアクセス権を割り当てる
-
IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。
手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「アクセス許可セットを作成する」を参照してください。
-
グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。
手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「グループの追加」を参照してください。
コンソールで Lambda の耐久性のある関数を作成します
この例では、耐久性のある関数は自動チェックポイントを使用して、複数のステップで注文を処理します。関数によって注文 ID を含む JSON オブジェクトを受け取り、注文が検証され、支払いが処理され、注文が確認されます。各ステップは自動的にチェックポイントされるため、関数が中断された場合、最後に完了したステップから再開されます。
関数では待機オペレーションも示され、外部確認の待機をシミュレーションするため、実行が短時間一時停止されます。
コンソールで耐久性のある関数を作成する方法
Lambda コンソールの [関数]
ページを開きます。 -
[関数の作成] を選択してください。
-
[一から作成] を選択します。
-
[基本情報] ペインで、[関数名] に「
」を入力します。myDurableFunction -
[ランタイム] で、[Node.js 24] または [Python 3.14] のいずれかを選択します。
-
[耐久性のある実行の有効化] を選択します。
Lambda によってチェックポイントオペレーション (lambda:CheckpointDurableExecutions および lambda:GetDurableExecutionState) のアクセス許可を含む実行ロールが使用され、耐久性のある関数が作成されます。
注記
Lambda ランタイムには Durable Execution SDK が含まれているため、依存関係をパッケージ化せず、耐久性のある関数をテストできます。ただし、本番稼働用のデプロイパッケージに SDK を含めることをお勧めします。バージョン整合性が確保され、関数に影響を与える可能性があるランタイム更新を回避できます。
コンソールの組み込み Code Editor を使用して、耐久性のある関数コードを追加します。
コンソールの Code Editor を使用して耐久性のある関数を呼び出す
耐久性のある関数には、呼び出しために修飾 ARN が必要です。耐久性のある関数を呼び出す前に、バージョンを発行します。
関数のバージョンを発行する方法
-
[バージョニング] タブを選択します。
-
[新しいバージョンを発行] を選択します。
-
[バージョンの説明] には、「
Initial version」と入力します (オプション)。 -
[公開] を選択します。
-
Lambda によって関数のバージョン 1 が作成されます。関数 ARN の末尾に
:1が含まれるようになり、バージョン 1 であることが示されていることに注意してください。
次に、関数に送信するテストイベントを作成します。イベントは、注文 ID を含む JSON 形式のドキュメントです。
テストイベントを作成するには
-
コンソールコードエディタの [TEST EVENTS] セクションで、[テストイベントを作成] を選択します。
-
[イベント名] で、「
myTestEvent」と入力します。 -
[Event JSON] セクションで、デフォルトの JSON を次のように置き換えます。
{ "orderId": "order-12345" } -
[保存] を選択します。
耐久性のある関数をテストして実行を表示する方法
コンソールコードエディタの [TEST EVENTS] セクションで、テストイベントの横にある実行アイコンを選択します。
耐久性のある関数の実行が開始されます。10 秒の待機が含まれるため、最初の呼び出しはすぐに完了します。関数は待機期間後に再開されます。実行の進行状況は、[耐久性のある実行] タブで確認できます。
耐久性のある関数の実行を表示する方法
-
[耐久性のある実行] タブを選択します。
-
リストで実行を検索します。実行には現在のステータス (実行中、成功、失敗) が表示されます。
-
実行 ID を選択して詳細を確認します。以下の情報が含まれます。
各ステップが完了した日時が示される実行タイムライン
チェックポイント履歴
待機期間
ステップの結果
CloudWatch Logs で関数のログを表示し、各ステップのコンソール出力を確認することもできます。
CloudWatch Logs で関数の呼び出しレコードを表示するには
-
Amazon CloudWatch コンソールの [[Log groups (ロググループ)] ページ
] を開きます。 -
関数のロググループの名前を選択します (
/aws/lambda/myDurableFunction) 。 -
下にスクロールし、表示したい関数呼び出しのログストリームを選択します。
関数の呼び出しごとにログエントリ (最初の実行および待機後の再生を含む) を確認してください。
クリーンアップ
耐久性のある関数のサンプルで作業が完了したら、削除します。また、関数のログを保存するロググループと、コンソールが作成した実行ロールも削除できます。
Lambda 関数を削除するには
-
Lambda コンソールの [関数]
ページを開きます。 -
作成した関数を選択します。
-
[アクション] で、[削除] を選択します。
-
テキスト入力フィールドに
confirmと入力し、[削除] を選択します。
ロググループを削除するには
-
Amazon CloudWatch コンソールの [Log groups (ロググループ)] ページ
を開きます。 -
関数のロググループ (
/aws/lambda/myDurableFunction) を選択します。 -
[アクション]、[ロググループの削除] の順にクリックします。
-
ロググループの削除ダイアログボックスで、[削除] をクリックします。
実行ロールを削除するには
-
AWS Identity and Access Management (IAM) コンソールの [Roles (ロール)] ページ
を開きます。 -
関数の実行ロールを選択します (
myDurableFunction-role-など)。31exxmpl -
[削除] を選択します。
-
[ロールを削除] ダイアログボックスにロール名を入力し、[削除] を選択します。
その他のリソースと次のステップ
コンソールを使用してシンプルな耐久性のある関数を作成してテストを行ったら、次の各ステップを実行してください。
-
分散トランザクション、注文処理、人間によるレビューワークフローなど、耐久性のある関数の一般的なユースケースについて説明します。「例」を参照してください。
-
CloudWatch メトリクスおよび実行履歴を使用し、耐久性のある関数の実行をモニタリングする方法について説明します。「モニタリングとデバッグ」を参照してください。
-
耐久性のある関数を同期的および非同期的に呼び出し、長時間の実行を管理する方法について説明します。「耐久性のある関数の呼び出し」を参照してください。
-
決定的コードの記述、チェックポイントサイズの管理、コストの最適化に関するベストプラクティスに従います。「ベストプラクティス」を参照してください。
-
耐久性のある関数をローカルやクラウドでテストする方法について説明します。「耐久性のある関数のテスト」を参照してください。