API Gateway で WebSocket API のルートレスポンスを設定する - Amazon API Gateway

API Gateway で WebSocket API のルートレスポンスを設定する

WebSocket ルートは、双方向または単方向通信に対して設定できます。ユーザーがルートレスポンスを設定しない限り、API Gateway はルートレスポンスにバックエンドレスポンスを渡しません。

注記

WebSocket API の $default ルートレスポンスのみを定義できます。統合レスポンスを使用して、バックエンドサービスからのレスポンスを操作できます。詳細については、「統合レスポンスの概要」を参照してください。

API Gateway コンソール、AWS CLI、または AWS SDK を使用して、ルートレスポンスとレスポンス選択式を設定できます。

ルートレスポンス選択式の設定の詳細については、「ルートレスポンス選択式」を参照してください。

API Gateway コンソールを使用したルートレスポンスの設定

WebSocket API を作成し、プロキシ Lambda 関数をデフォルトルートにアタッチしたら、API Gateway コンソールを使用してルートレスポンスを設定できます。

  1. API Gateway コンソールにサインインし、$default ルートの Lambda 関数の統合で WebSocket API を選択します。

  2. [Routes] (ルート) で、$default ルートを選択します。

  3. [双方向通信を有効にする] を選択します。

  4. [API のデプロイ] を選択します。

  5. API をステージにデプロイします。

以下の wscat コマンドを使用して、API に接続します。wscat の詳細については、「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-apisget-routes を呼び出すことで、API ID とルート ID を識別できます。

aws apigatewayv2 create-route-response \ --api-id aabbccddee \ --route-id 1122334 \ --route-response-key '$default'

出力例:

{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }