開発者はAWS SAM(Serverless Application Model)を利用してサーバーレスアプリケーションを作成しています。開発したAPI GatewayとAWS Lambda関数の連携処理を、実際のAWS環境へデプロイすることなく、自身のローカル開発端末上でDockerコンテナを使用してHTTPエンドポイントとしてエミュレート・テストしたいと考えています。使用すべき適切なAWS SAM CLIコマンドはどれですか。
A
sam local invoke を実行し、ローカル上の単一Lambda関数にイベントJSONを手動で注入して直接テストする。
sam local invokeは指定した1つのLambda関数を直接単発実行するコマンドであり、HTTPエンドポイントとしてWebサーバーを起動するものではありません。
B
sam local start-api を実行し、定義されたすべてのAPIエンドポイントをテスト可能なローカルHTTPサーバーを起動する。
✓ 正解
sam local start-apiを実行することで、ローカル端末上でAPI GatewayのHTTPエンドポイントがエミュレートされ、実際のWebリクエストでテストできます。
C
sam deploy --guided を実行して、対話形式でローカルの設定ファイルをAWSクラウド環境上のスタックへ即時反映させる。
sam deploy --guidedはローカルで構築・ビルドしたアプリケーションを実際のAWSクラウド環境へデプロイするためのコマンドです。
D
sam local generate-event を実行して、API Gatewayのプロキシ統合リクエストを生成するローカルデーモンを常駐させる。
sam local generate-eventは各種AWSサービスのダミーイベントJSONを生成するコマンドであり、テスト用サーバーを起動する機能はありません。
解説
`sam local start-api` コマンドを使用すると、ローカル環境(Dockerを使用)でAPI GatewayのHTTPエンドポイントが立ち上がります。開発者はPostmanやcURL、ブラウザなどを通じてローカルのURL(例: `http://127.0.0.1:3000`)へリクエストを送信し、バックエンドのLambda関数との連携動作を本番に近い形でローカルテストできます。`sam local invoke` は関数単位の直接呼び出し用であり、HTTPサーバーは起動しません。