Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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

使用 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 命令,利用新创建的部署 ID ({deployment-id}) 更新阶段的 deploymentId 属性。

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. Actions (操作) 下拉菜单中选择 Deploy API (部署 API)

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