sam local start-api を外部からアクセス可能にする
はじめに
AWS SAM (Serverless Application Model) CLI は、サーバーレスアプリケーションをローカルでテスト・デバッグするための強力なツールです。sam local start-api コマンドを使用すると、API Gatewayのローカルエミュレーションを起動し、Lambda関数をテストできます。
しかし、デフォルトではこのAPIは 127.0.0.1 (localhost) にのみバインドされるため、コマンドを実行しているマシンからしかアクセスできません。別のPCや仮想マシン、またはスマートフォンなどからテストしたい場合、このままでは不便です。
解決策: --host オプションを指定する
sam local start-api コマンドに --host 0.0.0.0 オプションを追加することで、ローカルAPIがすべてのネットワークインターフェースでリクエストを待ち受けるようになります。
sam local start-api --host 0.0.0.0 --port 3000
各オプションの説明
| 項目 | 説明 |
|---|---|
--host | APIをバインドするホストアドレスを指定します。デフォルトは 127.0.0.1 です。0.0.0.0 を指定すると、マシンに割り当てられているすべてのIPアドレス(例: 192.168.1.10 など)で待ち受けます。 |
--port | APIがリッスンするポート番号を指定します。デフォルトは 3000 です。他のサービスと競合する場合は、--port 8080 のように変更できます。 |
このコマンドを実行すると、同じネットワークに接続している他のデバイスから http://<SAM実行マシンのIPアドレス>:3000 という形式でAPIにアクセスできるようになります。

![【Security Hub修復手順】[SSM.7] SSM ドキュメント](/posts/securityhub-remediation-ssm-7/image_hu_507d472308b28c8f.jpg)
