開発者はAWS SAM(Serverless Application Model)を使用して、サーバーレスアプリケーションのローカル開発とテストを行っています。ローカル環境上でDockerコンテナを使用してAPI GatewayとLambdaの連携動作をエミュレートし、HTTPリクエストに応答するローカルHTTPサーバーを立ち上げるために使用するAWS SAM CLIコマンドはどれですか。
A
sam local invoke を実行してテストイベントJSONを渡し、単一のLambda関数を直接実行する。
sam local invokeは指定した単一のLambda関数を1回だけ手動実行するためのコマンドであり、HTTPサーバーを立ち上げてAPI経由でテストする用途には使用しません。
B
sam local start-api を実行してローカルHTTPサーバーを起動し、APIエンドポイントのテストを行う。
✓ 正解
sam local start-apiを実行すると、ローカル環境でAPI GatewayのHTTPエンドポイントをエミュレートするWebサーバーが起動し、ブラウザやAPIクライアントからテストできます。
C
sam deploy --guided を実行してローカルテスト環境をAWSクラウド上のスタックへデプロイする。
sam deploy --guidedは構築したテンプレートとコードを実際のAWS環境へデプロイするためのコマンドであり、ローカルテストを実行するコマンドではありません。
D
sam local generate-event を実行してAPI GatewayのHTTPリクエストイベントペイロードを作成する。
sam generate-event(またはsam local generate-event)はテスト用サンプルイベントのJSONを生成するコマンドであり、ローカルサーバーを起動するものではありません。
解説
`sam local start-api` コマンドを使用すると、ローカルマシン上にHTTPサーバーが起動し、`template.yaml` に定義されたAPI GatewayエンドポイントとLambda関数の連携動作をDockerコンテナ上でテストできます。`sam local invoke` は特定のLambda関数単体を直接呼び出すコマンドであり、`sam deploy` は実際のリソースをAWS環境へデプロイするコマンドです。`sam local generate-event` はテスト用イベントJSONを作成するコマンドです。