为 API Gateway 中的 WebSocket API 设置路由响应
WebSocket 路由可以配置为双向或单向通信。除非您设置了路由响应,否则 API Gateway 不会将后端响应传递给路由响应。
注意
您只能为 WebSocket API 定义 $default
路由响应。您可以使用集成响应来处理来自后端服务的响应。有关更多信息,请参阅 集成响应概述。
您可以使用 API Gateway 控制台、AWS CLI 或AWS开发工具包配置路由响应和响应选择表达式。
有关路由响应选择表达式的更多信息,请参阅路由响应选择表达式。
使用 API Gateway 控制台设置路由响应
在创建 WebSocket API 并将代理 Lambda 函数附加到默认路由后,您可以使用 API Gateway 控制台设置路由响应:
-
登录 API Gateway 控制台,对于
$default
路由选择集成了代理 Lambda 函数的 WebSocket API。 -
在 Routes(路由)下,选择
$default
路由。 -
选择启用双向通信。
-
选择部署 API。
-
将 API 部署到阶段。
使用以下 wscatwscat
的更多信息,请参阅 使用 wscat 连接到 WebSocket API 并向其发送消息。
wscat -c wss://
api-id
.execute-api.us-east-2
.amazonaws.com/test
按 Enter 键以调用默认路由。应返回您的 Lambda 函数的主体。
使用 AWS CLI 设置路由响应
要使用 AWS CLI 为 WebSocket API 设置路由响应,请调用 create-route-response
命令,如以下示例所示。您可以通过调用 get-apis
和 get-routes
来识别 API ID 和路由 ID。
aws apigatewayv2 create-route-response \ --api-id
aabbccddee
\ --route-id1122334
\ --route-response-key '$default'
输出示例:
{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }