メインコンテンツにスキップ

sam local start-api を外部からアクセス可能にする

タグ: 🏷 AWS ,SAM

はじめに

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

各オプションの説明

項目説明
--hostAPIをバインドするホストアドレスを指定します。デフォルトは 127.0.0.1 です。0.0.0.0 を指定すると、マシンに割り当てられているすべてのIPアドレス(例: 192.168.1.10 など)で待ち受けます。
--portAPIがリッスンするポート番号を指定します。デフォルトは 3000 です。他のサービスと競合する場合は、--port 8080 のように変更できます。

このコマンドを実行すると、同じネットワークに接続している他のデバイスから http://<SAM実行マシンのIPアドレス>:3000 という形式でAPIにアクセスできるようになります。