API Gateway WebSocketでのLambda指定に関する質問

0

API GatewayのWebSocketで統合リクエストの設定を行う際、Lambda関数を指定する場合について質問です。

REST APIでは、ステージ変数を用いて以下のようにエイリアスを含むLambda関数を指定できることを理解しています。 arn:aws:lambda:<リージョン>:<アカウントID>:function:<関数名>:${stageVariables.<ステージ変数名>}

一方で、WebSocketではこのようにステージ変数を用いたLambda関数の指定ができないように見えます。この認識は正しいでしょうか? また、もし対応する方法があればご教示いただけますと幸いです。

1回答
0

お客様のご認識は正確です。API Gateway WebSocketでは、REST APIで可能なようなステージ変数を用いたLambda関数の指定方法は直接サポートされていません。

WebSocket APIでのステージ変数の使用は、REST APIやHTTP APIと比べて制限があります。WebSocket APIでは、ステージ変数を使用してLambda関数名やエイリアスを動的に指定することはできません。

ただし、WebSocket APIでもステージ変数自体は使用可能です。例えば、HTTP統合エンドポイントのカスタマイズや、API設定の他の部分で使用することができます。

WebSocket APIで異なるステージごとに異なるLambda関数を使用したい場合、以下のような代替アプローチを検討することができます:

  1. 各ステージに対して個別のAPI設定を作成し、それぞれに適切なLambda関数を直接指定する。

  2. 単一のLambda関数を使用し、その関数内でステージに基づいてロジックを分岐させる。この場合、ステージ情報はリクエストコンテキスト内で利用可能です。

  3. Lambda関数内でステージ変数の値を取得し、それに基づいて異なる処理を行う。

これらの方法により、WebSocket APIでも異なるステージで異なる動作を実現することができますが、REST APIのようにステージ変数を直接Lambda関数の指定に使用することはできません。
Sources
Create stages for WebSocket APIs in API Gateway - Amazon API Gateway
Use stage variables for HTTP APIs in API Gateway - Amazon API Gateway

profile picture
回答済み 16日前
  • devのステージではLambdaのエイリアスdevの使い、prodのステージではprodのエイリアスを使う、 のようにステージごとに違うLambdaのエイリアスを参照するにはどうしたらいいですか?

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ