翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用したテストの概要 sam local generate-event
AWS Serverless Application Model コマンドラインインターフェイス (AWS SAM CLI) sam local generate-event
サブコマンドを使用して、サポートされている のイベントペイロードサンプルを生成します AWS のサービス。その後、これらのイベントを変更して、テストのためにローカルリソースに渡すことができます。
-
の概要 AWS SAM CLI、「」を参照してください。 AWS SAMCLI とは?
-
sam local generate-event
コマンドオプションのリストについては、「sam local generate-event」を参照してください。
イベントは、 がアクションまたはタスク AWS のサービス を実行するときに生成されるJSONオブジェクトです。これらのイベントには、処理されたデータやイベントのタイムスタンプなどの特定の情報が含まれています。ほとんどの AWS のサービス はイベントを生成し、各サービスのイベントはそのサービスに合わせて独自にフォーマットされます。
1 つのサービスによって生成されたイベントは、イベントソースとして他のサービスに渡されます。例えば、Amazon Simple Storage Service (Amazon S3) バケットに配置された項目はイベントを生成できます。このイベントは、データをさらに処理する AWS Lambda 関数のイベントソースとして使用できます。
で生成するイベントsam local generate-event
は、 AWS サービスによって作成された実際のイベントと同じ構造でフォーマットされます。これらのイベントの内容を変更し、それらを使用してアプリケーション内のリソースをテストできます。
を使用するにはsam local generate-event
、 をインストールします。 AWS SAM CLI 以下を完了します。
sam local generate-event
を使用する前に、次の基本を理解しておくことをお勧めします。
サンプルイベントを生成する
を使用する AWS SAM CLI sam local generate-event
サポートされている のイベントを生成するサブコマンド AWS のサービス。
サポートされている のリストを表示するには AWS のサービス
-
下記を実行します。
$
sam local generate-event
-
サポートされている のリスト AWS のサービス が表示されます。以下に例を示します。
$
sam local generate-event
... Commands: alb alexa-skills-kit alexa-smart-home apigateway appsync batch cloudformation ...
ローカルイベントを生成するには
-
sam local generate-event
を実行して、サポートされているサービス名を指定します。これにより、生成できるイベントタイプのリストが表示されます。以下に例を示します。$
sam local generate-event
Usage: sam local generate-event s3 [OPTIONS] COMMAND [ARGS]... Options: -h, --help Show this message and exit. Commands: batch-invocation Generates an Amazon S3 Batch Operations Invocation Event delete Generates an Amazon S3 Delete Event put Generates an Amazon S3 Put Events3
-
サンプルイベントを生成するには、サービスとイベントタイプを指定して
sam local generate-event
を実行します。$
sam local generate-event
<service>
<event>
以下に例を示します。
$
sam local generate-event
{ "Records": [ { "eventVersion": "2.0", "eventSource": "aws:s3", "awsRegion": "us-east-1", "eventTime": "1970-01-01T00:00:00.000Z", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "EXAMPLE" }, "requestParameters": { "sourceIPAddress": "127.0.0.1" }, "responseElements": { "x-amz-request-id": "EXAMPLE123456789", "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" }, "s3": { "s3SchemaVersion": "1.0", "configurationId": "testConfigRule", "bucket": { "name": "amzn-s3-demo-bucket", "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::amzn-s3-demo-bucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }s3 put
これらのサンプルイベントにはプレースホルダー値が含まれています。これらの値を変更して、アプリケーション内の実際のリソースを参照したり、ローカルテストに役立つ値を参照したりできます。
サンプルイベントを変更するには
-
コマンドプロンプトでサンプルイベントを変更できます。オプションを確認するには、次のコマンドを実行します。
$
sam local generate-event
<service>
<event>
--help以下に例を示します。
$
sam local generate-event
Usage: sam local generate-event s3 put [OPTIONS] Options: --region TEXT Specify the region name you'd like, otherwise the default = us-east-1 --partition TEXT Specify the partition name you'd like, otherwise the default = aws --bucket TEXT Specify the bucket name you'd like, otherwise the default = example-bucket --key TEXT Specify the key name you'd like, otherwise the default = test/key --debug Turn on debug logging to print debug message generated by AWS SAM CLI and display timestamps. --config-file TEXT Configuration file containing default parameter values. [default: samconfig.toml] --config-env TEXT Environment name specifying default parameter values in the configuration file. [default: default] -h, --help Show this message and exit.s3
put
--help -
コマンドプロンプトでこれらのオプションのいずれかを使用して、サンプルイベントペイロードを変更します。以下に例を示します。
$
sam local generate-event
{ "Records": [ { "eventVersion": "2.0", "eventSource": "aws:s3", "awsRegion": "us-east-1", "eventTime": "1970-01-01T00:00:00.000Z", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "EXAMPLE" }, "requestParameters": { "sourceIPAddress": "127.0.0.1" }, "responseElements": { "x-amz-request-id": "EXAMPLE123456789", "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" }, "s3": { "s3SchemaVersion": "1.0", "configurationId": "testConfigRule", "bucket": { "name":s3 put--bucket amzn-s3-demo-bucket
"amzn-s3-demo-bucket"
, "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::amzn-s3-demo-bucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }
生成されたイベントをローカルテストに使用する
生成されたイベントをローカルで保存し、他の sam local
サブコマンドを使用してテストします。
生成したイベントをローカルで保存するには
-
下記を実行します。
$
sam local generate-event
<service> <event> <event-option>
><filename.json>
プロジェクトの
events
フォルダにs3.json
ファイルとして保存されるイベントの例を次に示します。sam-app$
sam local generate-event
s3 put --bucket amzn-s3-demo-bucket
>events/s3.json
生成されたイベントをローカルテストに使用するには
-
--event
オプションを使用して、他のsam local
サブコマンドでイベントを渡します。s3.json
イベントを使用して Lambda 関数をローカルで呼び出す例を次に示します。sam-app$
sam local invoke --event
Invoking src/handlers/s3-json-logger.s3JsonLoggerHandler (nodejs18.x) Local image is up-to-date Using local image: public.ecr.aws/lambda/nodejs:18-rapid-x86_64. Mounting /Users/.../sam-app/.aws-sam/build/S3JsonLoggerFunction as /var/task:ro,delegated, inside runtime container START RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128 Version: $LATEST END RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128 REPORT RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128 Init Duration: 1.23 ms Duration: 9371.93 ms Billed Duration: 9372 ms Memory Size: 128 MB Max Memory Used: 128 MBevents/s3.json S3JsonLoggerFunction
詳細
すべての sam local generate-event
オプションのリストについては、「sam local
generate-event」を参照してください。
sam local
の使用のデモについては、「ローカル開発用のAWS SAM 」を参照してください。SAM シリーズが の Serverless Land Sessions でのローカル開発環境からの AWS クラウド リソースのテスト