API Gateway で WebSocket API のルートレスポンスを設定する
WebSocket ルートは、双方向または単方向通信に対して設定できます。ユーザーがルートレスポンスを設定しない限り、API Gateway はルートレスポンスにバックエンドレスポンスを渡しません。
注記
WebSocket API の $default
ルートレスポンスのみを定義できます。統合レスポンスを使用して、バックエンドサービスからのレスポンスを操作できます。詳細については、「統合レスポンスの概要」を参照してください。
API Gateway コンソール、AWS CLI、または AWS SDK を使用して、ルートレスポンスとレスポンス選択式を設定できます。
ルートレスポンス選択式の設定の詳細については、「ルートレスポンス選択式」を参照してください。
API Gateway コンソールを使用したルートレスポンスの設定
WebSocket API を作成し、プロキシ Lambda 関数をデフォルトルートにアタッチしたら、API Gateway コンソールを使用してルートレスポンスを設定できます。
-
API Gateway コンソールにサインインし、
$default
ルートの Lambda 関数の統合で WebSocket API を選択します。 -
[Routes] (ルート) で、
$default
ルートを選択します。 -
[双方向通信を有効にする] を選択します。
-
[API のデプロイ] を選択します。
-
API をステージにデプロイします。
以下の wscatwscat
の詳細については、「wscat を使用した WebSocket API への接続とメッセージの送信」を参照してください。
wscat -c wss://
api-id
.execute-api.us-east-2
.amazonaws.com/test
Enter ボタンを押して、デフォルトルートを呼び出します。Lambda 関数の本体が戻るはずです。
AWS CLI を使用してルートレスポンスを設定する
AWS CLI を使用して WebSocket API のルートレスポンスを設定するには、次の例に示すように create-route-response
コマンドを呼び出します。get-apis
と get-routes
を呼び出すことで、API ID とルート ID を識別できます。
aws apigatewayv2 create-route-response \ --api-id
aabbccddee
\ --route-id1122334
\ --route-response-key '$default'
出力例:
{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }