sam local invoke
ローカル AWS Lambda 関数を一回呼び出して、呼び出し完了後に終了します。
このコマンドを使用する場合、AWS SAM CLI はデフォルトで、現在の作業ディレクトリがプロジェクトのルートディレクトリであると想定します。AWS SAM CLI はまず、sam build コマンドを使用して構築されたテンプレートファイルを見つけようとします。これは .aws-sam
サブフォルダにあり、template.yaml
または template.yml
と命名されています。AWS SAM CLI は次に、現在の作業ディレクトリで、template.yaml
または template.yml
と命名されているテンプレートファイルを見つけようとします。--template
オプションを指定する場合、AWS SAM CLI のデフォルト動作が上書きされ、その AWS SAM テンプレートと、それがポイントするローカルリソースだけがロードされます。
ネストされたアプリケーションまたはスタックの関数を呼び出すには、StackLogicalId/FunctionLogicalId
形式を使用して、関数の論理 ID と共に、アプリケーションまたはスタックの論理 ID を提供できます。
sam local invoke
コマンドは、Amazon Simple Storage Service (Amazon S3) イベントや Amazon Kinesis イベントなどの非同期イベントを処理するサーバーレス関数の開発に役立ちます。これは、テストケースのスクリプトを作成する場合にも便利です。--event
パラメータを使用してイベントの本文を渡すことができます。イベントの詳細については、AWS Lambda デベロッパーガイドの「イベント」を参照してください。AWS の異なるサービスからのイベントメッセージ形式の詳細については、AWS Lambda デベロッパーガイドの他のサービスで AWS Lambda を使用するを参照してください。
ランタイム出力 (ログなど) は stderr
に出力され、Lambda 関数の結果は stdout
に出力されます。
AWS SAM テンプレートに複数の関数が定義されている場合は、呼び出す関数の FUNCTION_LOGICAL_ID
を提供する必要があります。
使用方法:
sam local invoke [OPTIONS] [FUNCTION_LOGICAL_ID]
オプション:
オプション | 説明 |
---|---|
-e , --event PATH |
呼び出されたときに Lambda 関数に渡されるイベントデータが含まれる JSON ファイルです。このオプションを指定しない場合、イベントは想定されません。stdin からの JSON を入力するには、値「-」を渡す必要があります。AWS の異なるサービスからのイベントメッセージ形式の詳細については、AWS Lambda デベロッパーガイドの他のサービスで AWS Lambda を使用するを参照してください。 |
--no-event |
空のイベントを使用して関数を呼び出します。 |
-t , --template PATH |
AWS SAM テンプレートファイルです。 注意: このオプションを指定すると、AWS SAM は、テンプレートと、それがポイントするローカルリソースのみをロードします。 |
-n , --env-vars PATH |
Lambda 関数の環境変数の値が含まれる JSON ファイルです。環境変数ファイルの詳細については、「環境変数ファイル」を参照してください。 |
--parameter-overrides |
(オプション) キーバリューペアとしてエンコードされた、AWS CloudFormation パラメータオーバーライドが含まれる文字列です。AWS Command Line Interface (AWS CLI) と同じ形式を使用します。例えば、「ParameterKey =KeyPairName , ParameterValue =MyKey ParameterKey =InstanceType , ParameterValue =t1.micro 」などです。 |
-d , --debug-port TEXT |
これを指定すると、Lambda 関数コンテナがデバッグモードで起動され、このポートがローカルホストに公開されます。 |
--debugger-path TEXT |
Lambda コンテナにマウントされたデバッガーへのホストパスです。 |
--debug-args TEXT |
デバッガーに渡す追加の引数です。 |
-v , --docker-volume-basedir TEXT |
AWS SAM ファイルが存在するベースディレクトリの場所です。Docker がリモートマシンで実行されている場合は、AWS SAM ファイルが存在する場所のパスを Docker マシンにマウントし、この値をリモートマシンと一致するように変更する必要があります。 |
--docker-network TEXT |
デフォルトのブリッジネットワークと共に、Lambda Docker コンテナが接続される必要がある既存の Docker ネットワークの名前または ID です。これを指定しない場合、Lambda コンテナはデフォルトのブリッジ Docker ネットワークだけに接続します。 |
--container-env-vars |
(オプション) ローカルでデバッグするときに、環境変数を Lambda 関数イメージコンテナに渡します。 |
-l , --log-file TEXT |
ランタイムログを送信するログファイルです。 |
--layer-cache-basedir DIRECTORY |
テンプレートで使用するレイヤーがダウンロードされるベースディレクトリの場所を指定します。 |
--skip-pull-image |
Lambda ランタイムの最新 Docker イメージのプルダウンを AWS SAM CLI がスキップすべきかどうかを指定します。 |
--force-image-build |
レイヤーがある Lambda 関数を呼び出すために使用されるイメージを AWS SAM CLI が再構築すべきかどうかを指定します。 |
--invoke-image TEXT |
ローカル関数の呼び出しに使用するコンテナーイメージの URI。デフォルトで、AWS SAM は Amazon ECR Public からコンテナイメージをプルします。このオプションは、別の場所からイメージをプルするために使用します。 例えば、 |
--profile TEXT |
AWS 認証情報を取得する、認証情報ファイルから特定のプロファイルです。 |
--region TEXT |
デプロイ先の AWS リージョンです。例えば、us-east-1 などです。 |
--config-file PATH |
使用するデフォルトのパラメータ値が含まれる設定ファイルのパスとファイル名です。デフォルト値は、プロジェクトディレクトリのルートにある「samconfig.toml 」です。設定ファイルの詳細については、「AWS SAM CLI の設定ファイル」を参照してください。 |
--config-env TEXT |
使用する設定ファイル内のデフォルトパラメータ値を指定する環境名です。デフォルト値は「default」です。設定ファイルの詳細については、「AWS SAM CLI の設定ファイル」を参照してください。 |
--shutdown |
シャットダウン動作の拡張機能処理をテストするために、呼び出し完了後にシャットダウンイベントをエミュレートします。 |
--container-host TEXT |
ローカルでエミュレートされた Lambda コンテナのホストです。デフォルト値は localhost です。macOS 上の Docker コンテナで AWS SAM CLI を実行する場合は、host.docker.internal を指定できます。AWS SAM CLI 以外のホストでコンテナを実行する場合は、リモートホストの IP アドレスを指定できます。 |
--container-host-interface TEXT |
コンテナポートがバインドする必要があるホストネットワークインターフェイスの IP アドレスです。デフォルト値は 127.0.0.1 です。0.0.0.0 を使用して、すべてのインターフェイスにバインドします。 |
--debug |
デバッグロギングをオンにして、AWS SAM CLI が生成するメッセージを出力表示し、タイムスタンプを表示します。 |
--help |
このメッセージを表示して終了します。 |