sam remote test-event を使用したクラウドテストの概要
AWS Serverless Application Model コマンドラインインターフェイス (AWS SAM CLI) の sam remote test-event
コマンドを使用して、AWS Lambda 関数の共有可能なテストイベントにアクセスし、管理します。
共有可能なテストイベントの詳細については、「AWS Lambda デベロッパーガイド」の「共有可能なテストイベント」を参照してください。
トピック
sam remote test-event
を使用するには、次を実行して AWS SAM CLI をインストールします。
AWS SAM CLI が既にインストールされている場合は、最新バージョンの AWS SAM CLI にアップグレードすることをお勧めします。詳細については、「AWS SAM CLI のアップグレード」を参照してください。
sam remote test-event
を使用する前に、次の基本を理解しておくことをお勧めします。
AWS SAM CLI で sam remote test-event を使用するようにセットアップする
次のセットアップステップを実行して、AWS SAM CLI sam remote test-event
コマンドを使用できるようにします。
-
AWS アカウント を使用するように AWS SAM CLI を設定する - Lambda の共有可能なテストイベントに、同じ AWS アカウント内のユーザーがアクセスして管理できます。AWS アカウント を使用するように AWS SAM CLI を設定する方法については、「AWS SAM CLI の設定」を参照してください。
-
共有可能なテストイベントのアクセス許可を設定する — 共有可能なテストイベントにアクセスして管理するには、適切なアクセス許可が必要です。詳細については、「AWS Lambda デベロッパーガイド」の「共有可能なテストイベント」を参照してください。
sam remote test-event コマンドの使用
AWS SAM CLI sam remote test-event
コマンドには、共有可能なテストイベントへのアクセスと管理に使用できる以下のサブコマンドがあります。
-
delete
— Amazon EventBridge スキーマレジストリから、共有可能なテストイベントを削除します。 -
get
— EventBridge スキーマレジストリから共有可能なテストイベントを取得します。 -
list
— EventBridge スキーマレジストリにある関数用の既存の共有可能なテストイベントを一覧表示します。 -
put
— ローカルファイルのイベントを EventBridge スキーマレジストリに保存します。
AWS SAM CLI を使用してこれらのサブコマンドを一覧表示するには、以下を実行します。
$
sam remote test-event --help
共有可能なテストイベントを削除する
delete
サブコマンドを以下と併せて使用することで、共有可能なテストイベントを削除できます。
-
削除する共有可能なテストイベントの名前を指定します。
-
イベントに関連付けられた許容可能な Lambda 関数 ID を指定します。
-
Lambda 関数の論理 ID を指定する場合は、Lambda 関数に関連付けられた AWS CloudFormation スタック名も指定する必要があります。
以下に例を示します。
$
sam remote test-event delete
HelloWorldFunction
--stack-namesam-app
--namedemo-event
delete
サブコマンドで使用するオプションのリストについては、「sam remote test-event delete」を参照してください。AWS SAM CLI から、以下の操作を実行することもできます。
$
sam remote test-event delete --help
共有可能なテストイベントを取得する
get
サブコマンドを以下と併せて使用することで、EventBridge スキーマレジストリから共有可能なテストイベントを取得できます。
-
取得する共有可能なテストイベントの名前を指定します。
-
イベントに関連付けられた許容可能な Lambda 関数 ID を指定します。
-
Lambda 関数の論理 ID を指定する場合は、Lambda 関数に関連付けられた AWS CloudFormation スタック名も指定する必要があります。
以下は、sam-app
スタックの HelloWorldFunction
Lambda 関数に関連付けられた demo-event
という名前の共有可能なテストイベントを取得する例です。このコマンドでは、イベントをコンソールに出力します。
$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
共有可能なテストイベントを取得してローカルマシンに保存するには、--output-file
オプションを使用してファイルパスと名前を指定します。以下は、現在の作業ディレクトリに demo-event
を demo-event.json
として保存する例です。
$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--output-filedemo-event.json
get
サブコマンドで使用するオプションのリストについては、「sam remote test-event get」を参照してください。AWS SAM CLI から、以下の操作を実行することもできます。
$
sam remote test-event get --help
共有可能なテストイベントを一覧表示する
スキーマレジストリから、特定の Lambda 関数のすべての共有可能なテストイベントを一覧表示できます。list
サブコマンドを以下と併せて使用します。
-
イベントに関連付けられた Lambda 関数の許容可能な ID を指定します。
-
Lambda 関数の論理 ID を指定する場合は、Lambda 関数に関連付けられた AWS CloudFormation スタック名も指定する必要があります。
以下は、sam-app
スタックの HelloWorldFunction
Lambda 関数に関連付けられたすべての共有可能なテストイベントのリストを取得する例です。
$
sam remote test-event list
HelloWorldFunction
--stack-namesam-app
list
サブコマンドで使用するオプションのリストについては、「sam remote test-event list」を参照してください。AWS SAM CLI から、以下の操作を実行することもできます。
$
sam remote test-event list --help
共有可能なテストイベントを保存する
共有可能なテストイベントを EventBridge スキーマレジストリに保存できます。put
サブコマンドを以下と併せて使用します。
-
共有可能なテストイベントに関連付けられた Lambda 関数の許容可能な ID を指定します。
-
共有可能なテストイベントの名前を指定します。
-
アップロードするローカルイベントのファイルパスと名前を指定します。
以下は、ローカルの demo-event.json
イベントを demo-event
として保存し、sam-app
スタックの HelloWorldFunction
Lambda 関数に関連付ける例です。
$
sam remote test-event put
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--filedemo-event.json
EventBridge スキーマレジストリに同じ名前の共有可能なテストイベントが存在する場合、AWS SAM CLI はそれを上書きしません。上書きするには、コマンドに --force
オプションを追加します。
put
サブコマンドで使用するオプションのリストについては、「sam remote test-event put」を参照してください。AWS SAM CLI から、以下の操作を実行することもできます。
$
sam remote test-event put --help
共有可能なテストイベントを使用する
共有可能なテストイベントを使用して、AWS クラウド で sam remote invoke
コマンドを実行して Lambda 関数をテストします。詳細については、「共有可能なテストイベントをクラウド内の Lambda 関数に渡す」を参照してください。
共有可能なテストイベントを管理する
このトピックには、共有可能なテストイベントを管理および使用する方法の例が含まれています。
共有可能なテストイベントを取得、変更、使用する
EventBridge スキーマレジストリから共有可能なテストイベントを取得してローカルで変更し、そのローカルテストイベントを AWS クラウド の Lambda 関数で使用できます。以下に例を示します。
-
共有可能なテストイベントを取得する —
sam remote test-event get
サブコマンドを使用して、特定の Lambda 関数の共有可能なテストイベントを取得し、ローカルに保存します。$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--output-filedemo-event.json
-
共有可能なテストイベントを変更する — 任意のテキストエディタを使用して、共有可能なテストイベントを変更します。
-
共有可能なテストイベントを使用する —
sam remote invoke
コマンドを使用して、--event-file
でイベントのファイルパスと名前を指定します。$
sam remote invoke
HelloWorldFunction
--stack-namesam-app
--event-filedemo-event.json
共有可能なテストイベントを取得し、変更、アップロード、使用する
EventBridge スキーマレジストリから共有可能なテストイベントを取得し、ローカルで変更してアップロードできます。その後、共有可能なテストイベントを AWS クラウド の Lambda 関数に直接渡すことができます。以下に例を示します。
-
共有可能なテストイベントを取得する —
sam remote test-event get
サブコマンドを使用して、特定の Lambda 関数の共有可能なテストイベントを取得し、ローカルに保存します。$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--output-filedemo-event.json
-
共有可能なテストイベントを変更する — 任意のテキストエディタを使用して、共有可能なテストイベントを変更します。
-
共有可能なテストイベントをアップロードする —
sam remote test-event put
サブコマンドを使用して、共有可能なテストイベントを EventBridge スキーマレジストリにアップロードして保存します。この例では、共有可能なテストの古いバージョンを上書きする--force
オプションを使用しています。$
sam remote test-event put
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--filedemo-event.json
--force -
共有可能なテストイベントを Lambda 関数に渡す —
sam remote invoke
コマンドを使用して、共有可能なテストイベントを AWS クラウド の Lambda 関数に直接渡します。$
sam remote invoke
HelloWorldFunction
--stack-namesam-app
--test-event-namedemo-event