在创建 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 的默认域名,给定阶段 (
) 中的 WebSocket API 的 URL(例如)采用以下格式:{stageName}
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
阶段。可以通过将 API 重新部署到 prod
阶段来完成升级。有关阶段的详细信息,请参阅为 API Gateway 中的 REST API 设置阶段。
使用 AWS CLI 创建 WebSocket API 部署
下面的 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": {} }
您还可以使用新创建的部署 ID(deployment-id
)来更新阶段的 deploymentId
属性,以便重复使用现有的阶段。使用以下 update-stage 命令更新阶段的部署 ID:
aws apigatewayv2 update-stage --region
region
\ --api-idapi-id
\ --stage-namestage-name
\ --deployment-iddeployment-id
使用 API Gateway 控制台创建 WebSocket API 部署
要使用 API Gateway 控制台为 WebSocket API 创建部署,请执行以下操作:
-
登录 API Gateway 控制台并选择 API。
-
选择部署 API。
-
从下拉列表中选择所需的阶段,或输入新阶段的名称。