の使用 AWS SAM CLI with Terraform ローカルデバッグとテスト用 - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

の使用 AWS SAM CLI with Terraform ローカルデバッグとテスト用

このトピックでは、サポートされている AWS Serverless Application Model コマンドラインインターフェイス (AWS SAM CLI) コマンドを Terraform プロジェクトと Terraform Cloud.

フィードバックを提供し、機能リクエストを送信するには、 GitHub 問題

を使用したローカルテスト sam local invoke

注記

を使用するには AWS SAM CLI ローカルでテストするには、Docker を組み込み、設定する必要があります。手順については、AWS SAM CLI で Docker を使用するためのインストール方法 を参照してください。

以下の例では、イベントを渡して Lambda 関数をローカルでテストしています。

$ sam local invoke --hook-name terraform hello_world_function -e events/event.json -

このコマンドを使用する場合の詳細については、「を使用したテストの概要 sam local invoke」を参照してください。

を使用したローカルテスト sam local start-api

sam local start-api で を使用するには Terraform、以下を実行します。

$ sam local start-api --hook-name terraform

以下に例を示します。

$ sam local start-api --hook-name terraform Running Prepare Hook to prepare the current application Executing prepare hook of hook "terraform" Initializing Terraform application ... Creating terraform plan and getting JSON output .... Generating metadata file Unresolvable attributes discovered in project, run terraform apply to resolve them. Finished generating metadata file. Storing in... Prepare hook completed and metadata file generated at: ... Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET] Mounting None at http://127.0.0.1:3000/hello [POST] You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart SAM CLI if you update your AWS SAM template 2023-06-26 13:21:20 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)

このコマンドの詳細については、「を使用したテストの概要 sam local start-api」を参照してください。

Lambda オーソライザーを使用する Lambda 関数

Lambda オーソライザーを使用するように設定された Lambda 関数の場合、 AWS SAM CLI は、Lambda 関数エンドポイントを呼び出す前に、Lambda オーソライザーを自動的に呼び出します。

を使用したローカルテスト sam local start-lambda

以下は、 AWS Command Line Interface () を使用して Lambda 関数をローカルでテストする例ですAWS CLI。

  1. を使用する AWS SAM CLI ローカルテスト環境を作成するには:

    $ sam local start-lambda --hook-name terraform hello_world_function
  2. を使用して、関数 AWS CLI をローカルで呼び出します。

    $ aws lambda invoke --function-name hello_world_function --endpoint-url http://127.0.0.1:3001/ response.json --cli-binary-format raw-in-base64-out --payload file://events/event.json

このコマンドの詳細については、「を使用したテストの概要 sam local start-lambda」を参照してください。

Terraform 制限事項

以下は、 を使用する場合の制限です。 AWS SAM CLI with Terraform:

  • 複数のレイヤーにリンクされている Lambda 関数。

  • Terraform リソース間のリンクを定義するローカル変数。

  • まだ作成されていない Lambda 関数の参照。これには、RESTAPIリソースの body 属性で定義される関数が含まれます。

プロジェクトに新しいリソースが追加されたときに terraform apply を実行すると、このような制限を回避することができます。