🌐
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にアクセスできるようになります。
Discussion