在 API Gateway 中部署 WebSocket API - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 API Gateway 中部署 WebSocket API

在创建 WebSocket 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 相同。有关更多信息,请参阅 为 REST API 设置自定义域名

阶段实现了对 API 的可靠版本控制。例如,您可以将 API 部署到 test 阶段和 prod 阶段,并使用 test 阶段作为测试版本,使用 prod 阶段作为稳定版本。更新通过测试之后,您可以将 test 阶段提升到 prod 阶段。可以通过将 API 重新部署到 prod 阶段来完成升级。有关阶段的详细信息,请参阅设置 REST API 的阶段

使用 Amazon CLI 创建 WebSocket API 部署

要使用 Amazon 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": {} }

要重用现有阶段,请使用 deploymentId 命令,利用新创建的部署 ID ({deployment-id}) 更新阶段的 update-stage 属性。

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. 选择 Deploy API (部署 API)

  3. 从下拉列表中选择所需的阶段,或输入新阶段的名称。