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

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

在 API Gateway 中为 WebSocket API 设置路由响应

WebSocket 路由可以配置为双向或单向通信。除非您设置了路由响应,否则 API Gateway 不会将后端响应传递给路由响应。

注意

您只能为 WebSocket API 定义 $default 路由响应。您可以使用集成响应来处理来自后端服务的响应。有关更多信息,请参阅集成响应概述

您可以使用 API Gateway 控制台、Amazon CLI 或Amazon开发工具包配置路由响应和响应选择表达式。

有关路由响应选择表达式的更多信息,请参阅路由响应选择表达式

使用 API Gateway 控制台设置路由响应

在创建 WebSocket API 并将代理 Lambda 函数附加到默认路由后,您可以使用 API Gateway 控制台设置路由响应:

  1. 登录 API Gateway 控制台,对于 $default 路由选择集成了代理 Lambda 函数的 WebSocket API。

  2. Routes(路由)下,选择 $default 路由。

  3. 选择启用双向通信

  4. 选择 Deploy API (部署 API)

  5. 将 API 部署到阶段。

使用以下 wscat 命令连接到您的 API。有关 wscat 的更多信息,请参阅 使用 wscat 连接到 WebSocket API 并向其发送消息

wscat -c wss://api-id.execute-api.us-east-2.amazonaws.com/test

按 Enter 键以调用默认路由。应返回您的 Lambda 函数的主体。

使用 Amazon CLI 设置路由响应

要使用 Amazon CLI 为 WebSocket API 设置路由响应,请调用 create-route-response 命令,如以下示例所示。您可以通过调用 get-apisget-routes 来识别 API ID 和路由 ID。

aws apigatewayv2 create-route-response \ --api-id aabbccddee \ --route-id 1122334 \ --route-response-key '$default'

输出示例:

{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }