AWS CLI を使用して Lambda の耐久性のある関数をデプロイして呼び出す
AWS CLI を使用して、命令コマンドで Lambda の耐久性のある関数を作成してデプロイします。このアプローチにより、デプロイプロセスの各ステップを直接制御できます。
前提条件
をインストールして設定しますAWS CLI 手順については、「AWS CLI のインストール」を参照してください。
関数コードおよび耐久性のある実行 SDK でデプロイパッケージを作成します。
チェックポイントのアクセス許可で IAM 実行ロールを作成します。
実行ロールを作成する
基本的な Lambda 実行およびチェックポイントオペレーションのアクセス許可を持つ IAM ロールを作成します。
実行ロールを作成するには
-
Lambda のロール引き受けを許可する信頼ポリシードキュメントを作成します。
trust-policy.jsonとして保存します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
ロールを作成します。
aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json -
以下のように基本的な実行ポリシーを添付します。
aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole -
チェックポイントオペレーションのポリシーを作成します。
checkpoint-policy.jsonとして保存します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] } -
チェックポイントポリシーを作成してアタッチします:
aws iam create-policy \ --policy-name durable-checkpoint-policy \ --policy-document file://checkpoint-policy.json aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy
耐久性のある関数の作成します
--durable-config パラメータで耐久性のある関数を作成します。
耐久性のある関数を作成する方法
-
依存関係を持つ関数コードを .zip ファイルにパッケージ化します。
zip -r function.zip index.mjs node_modules/ -
耐久性のある実行を有効にして関数を作成します。
aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs22.x \ --role arn:aws:iam::ACCOUNT_ID:role/durable-function-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'
注記
関数の作成時のみに、耐久性のある実行を有効にできます。既存の関数には有効にできません。
バージョンの発行
耐久性のある関数には、呼び出しに修飾 ARN (バージョンまたはエイリアス付き) が必要です。関数にバージョンを発行します。
aws lambda publish-version \ --function-name myDurableFunction \ --description "Initial version"
コマンドはバージョン ARN を返します。ARN の末尾にあるバージョン番号 (例えば、:1) を書き留めてください。
オプションとして、バージョンを指すエイリアスを作成します。
aws lambda create-alias \ --function-name myDurableFunction \ --name prod \ --function-version 1
耐久性のある関数を呼び出す
修飾 ARN (バージョンまたはエイリアス) を使用して、耐久性のある関数を呼び出します。
同期呼び出し
15 分以内に完了する実行には、同期呼び出しを使用します。
aws lambda invoke \ --function-name myDurableFunction:1 \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
または、エイリアスを使用します。
aws lambda invoke \ --function-name myDurableFunction:prod \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
非同期呼び出し
長時間の実行には、非同期呼び出しを使用します。
aws lambda invoke \ --function-name myDurableFunction:prod \ --invocation-type Event \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
非同期呼び出しを使用すると、Lambda は即時に返します。関数はバックグラウンドで実行を続行します。
耐久性のある実行を管理する
次のコマンドを使用して、耐久性のある関数の実行を管理してモニタリングします。
実行を一覧表示する
耐久性のある関数におけるすべての実行を一覧表示します。
aws lambda list-durable-executions \ --function-name myDurableFunction:prod
実行の詳細を取得する
特定の実行に関する詳細を取得します。
aws lambda get-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
実行履歴を取得する
実行のチェックポイント履歴を表示します。
aws lambda get-durable-execution-history \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
実行を停止する
実行中の耐久性のある実行を停止します。
aws lambda stop-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
関数コードの更新
耐久性のある関数コードを更新し、新しいバージョンを発行します。
新しいバージョンを更新して公開する方法
-
関数コードを更新します。
aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip -
アップデートが完了するまで待機します。
aws lambda wait function-updated \ --function-name myDurableFunction -
新しいバージョンを発行します。
aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic" -
新しいバージョンをポイントするようにエイリアスを更新します。
aws lambda update-alias \ --function-name myDurableFunction \ --name prod \ --function-version 2
重要
開始したバージョンを使用して処理中の実行が継続されます。新しい呼び出しには、更新されたエイリアスバージョンが使用されます。
関数ログの表示
CloudWatch ログで耐久性のある関数のログを確認します。
aws logs tail /aws/lambda/myDurableFunction --follow
ログをフィルタリングして特定の実行を確認します。
aws logs filter-log-events \ --log-group-name /aws/lambda/myDurableFunction \ --filter-pattern "exec-abc123"
リソースをクリーンアップする
耐久性のある関数および関連付けされたリソースを削除します。
# Delete the function aws lambda delete-function --function-name myDurableFunction # Delete the IAM role policies aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy aws iam delete-policy \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy # Delete the role aws iam delete-role --role-name durable-function-role
次のステップ
AWS CLI を使用して耐久性のある関数をデプロイした後
list-durable-executionsおよびget-durable-executionコマンドを使用して実行をモニタリングするAWS CloudTrail データイベントでチェックポイントオペレーションを表示する
実行失敗または長時間実行の CloudWatch アラームを設定する
シェルスクリプトまたは CI/CD パイプラインを使用してデプロイを自動化する
Lambda の AWS CLI コマンドに関する詳細については、「AWS CLI コマンドリファレンス」を参照してください。