API Gateway で WebSocket API をデプロイする - Amazon API Gateway

API Gateway で WebSocket API をデプロイする

WebSocket API を作成したら、この API をデプロイしてユーザーが呼び出せるようにする必要があります。

API をデプロイするには、API デプロイを作成し、それを ステージに関連付けます。各ステージは、API のスナップショットであり、クライアントアプリが呼び出し可能になります。

重要

API を更新するたびに、API を再デプロイする必要があります。ステージ設定以外の変更には、以下のリソースへの変更も含めて、再デプロイが必要です。

  • ルート

  • 統合

  • オーソライザー

API ごとのステージ数は、デフォルトで 10 個に制限されています。デプロイでステージを再利用することをお勧めします。

デプロイされた WebSocket API を呼び出すため、クライアントはメッセージを API の URL に送信します。URL は、API のホスト名とステージ名によって決定されます。

注記

API Gateway は最大 128 KB までのペイロードをサポートし、最大フレームサイズは 32 KB です。メッセージが 32 KB を超えた場合は、それぞれを 32 KB 以下の複数のフレームに分割する必要があります。

API のデフォルトドメイン名を使用すると、特定のステージ ({stageName}) の WebSocket API の URL は、たとえば次の形式になります。

wss://{api-id}.execute-api.{region}.amazonaws.com/{stageName}

WebSocket API のデフォルトのベース URL をよりユーザーフレンドリなものにするには、カスタムドメイン名 (例: api.example.com) を作成し、API のデフォルトのホスト名と置き換えることができます。設定プロセスは、REST API と同じです。詳細については、「API Gateway での REST API のカスタムドメイン名」を参照してください。

ステージを使用すると、API の堅牢なバージョン管理が可能になります。たとえば、API を test ステージと、prod ステージにデプロイし、test ステージをテストビルドとして使用し、prod ステージを安定したビルドとして使用できます。更新がテストに合格したら、test ステージを prod ステージに昇格させることができます。昇格は、prod ステージに API を再デプロイすることで実行できます。ステージの詳細については、「API Gateway で REST API のステージをセットアップする」を参照してください。

AWS CLI を使用して WebSocket API デプロイを作成する

AWS CLI を使用してデプロイを作成するには、次の例に示すように create-deployment コマンドを実行します。

aws apigatewayv2 --region us-east-1 create-deployment --api-id aabbccddee

出力例:

{ "DeploymentId": "fedcba", "DeploymentStatus": "DEPLOYED", "CreatedDate": "2018-11-15T06:49:09Z" }

このデプロイをステージに関連付けるまで、デプロイされた API は呼び出し可能ではありません。新しいステージを作成するか、以前に作成したステージを再利用できます。

新しいステージを作成してデプロイと関連付けるには、次の例に示すように create-stage コマンドを使用します。

aws apigatewayv2 --region us-east-1 create-stage --api-id aabbccddee --deployment-id fedcba --stage-name test

出力例:

{ "StageName": "test", "CreatedDate": "2018-11-15T06:50:28Z", "DeploymentId": "fedcba", "DefaultRouteSettings": { "MetricsEnabled": false, "ThrottlingBurstLimit": 5000, "DataTraceEnabled": false, "ThrottlingRateLimit": 10000.0 }, "LastUpdatedDate": "2018-11-15T06:50:28Z", "StageVariables": {}, "RouteSettings": {} }

既存のステージを再利用するには、update-stage コマンドを使用して、ステージの deploymentId プロパティを、新しく作成したデプロイ ID ({deployment-id}) で更新します。

aws apigatewayv2 update-stage --region {region} \ --api-id {api-id} \ --stage-name {stage-name} \ --deployment-id {deployment-id}

API Gateway コンソールを使用して WebSocket API デプロイを作成する

API Gateway コンソールを使用して WebSocket API のデプロイを作成するには、次の作業を行います。

  1. API Gateway コンソールにサインインし、API を選択します。

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

  3. ドロップダウンリストから目的のステージを選択するか、新しいステージの名前を入力します。