API Gateway での WebSocket API について - Amazon API Gateway

API Gateway での WebSocket API について

API Gateway では、AWS のサービス (Lambda や DynamoDB など) または HTTP エンドポイントのステートフルフロントエンドとして WebSocket API を作成できます。WebSocket API は、クライアントアプリから受信するメッセージのコンテンツに基づいて、バックエンドを呼び出します。

WebSocket API は、リクエストを受け取って応答する REST API とは異なり、クライアントアプリとバックエンド間の双方向通信をサポートします。バックエンドは、接続されたクライアントにコールバックメッセージを送信できます。

WebSocket API では、受信する JSON メッセージは設定したルートに基づいてバックエンド統合に転送されます (JSON 以外のメッセージは、設定した $default ルートに転送されます)。

ルートにはルートキーが含まれます。これは、ルート選択式が評価されたときに予期される値です。属性 routeSelectionExpression は、API レベルで定義されます。メッセージペイロードに存在することが予期される JSON プロパティを指定します。ルート選択式の詳細については、「ルート選択式」を参照してください。

たとえば、JSON メッセージに action プロパティが含まれていて、このプロパティに基づいてさまざまなアクションを実行する場合、ルート選択式は ${request.body.action} のようになります。ルーティングテーブルでは、このテーブルで定義したカスタムルートキーの値に対して、action プロパティの値を一致させることによって、実行するアクションを指定します。

3 つの事前定義されたルート ($connect$disconnect、および $default) を使用できます。さらに、カスタムルートを作成することができます。

  • API Gateway は、クライアントと WebSocket API 間の永続的な接続が開始されたときに、$connect ルートを呼び出します。

  • API Gateway は、クライアントまたはサーバーが API から切断したときに、$disconnect ルートを呼び出します。

  • API Gateway は、一致するルートが見つかった場合、メッセージに対してルート選択式が評価された後でカスタムルートを呼び出します。この一致により、呼び出される統合が決まります。

  • ルート選択式をメッセージに対して評価できない場合や、一致するルートが見つからない場合、API Gateway は $default ルートを呼び出します。

$connect および $disconnect ルートの詳細については、「接続されたユーザーおよびクライアントアプリの管理: $connect ルートおよび $disconnect ルート」を参照してください。

$default ルートおよびカスタムルートの詳細については、「バックエンド統合の呼び出し: $default ルートおよびカスタムルート」を参照してください。

バックエンドサービスは、接続されたクライアントアプリにデータを送信できます。詳細については、「バックエンドサービスから接続されたクライアントへのデータの送信」を参照してください。