在 API Gateway 中设置 WebSocket API 集成响应
集成响应概述
API Gateway 的集成响应是一种用于对后端服务的响应进行建模和处理的方法。REST API 与 WebSocket API 集成响应的设置存在一些差别,但从概念上讲,行为是相同的。
WebSocket 路由可以配置为双向或单向通信。如果路由具有路由响应,则会将其配置为双向通信。否则,会将它配置为单向通信。
-
当路由配置为双向通信时,集成响应能让您对返回的消息负载配置转换,类似于 REST API 的集成响应。
-
如果路由配置为单向通信,则无论是否有任何集成响应配置,在处理消息后都不会通过 WebSocket 通道返回响应。
本文档的其余部分假定您已选择为路由配置双向通信。
集成可以分为代理集成和非代理集成。
对于代理集成,API Gateway 会自动将后端输出作为完整的负载传递给调用方。没有集成响应。
对于非代理集成,您必须至少设置一个集成响应:
-
理想情况下,您的一个集成响应应该在无法进行明确的选择时是包罗万象的响应。此默认情况是通过设置
$default
的集成响应键来表示的。 -
在所有其他情况下,集成响应键起正则表达式的作用。它应遵循
"/expression/"
格式。
对于非代理 HTTP 集成:
-
API Gateway 将尝试匹配后端响应的 HTTP 状态代码。在这种情况下,集成响应键将起正则表达式的作用。如果找不到匹配项,则会选择
$default
作为集成响应。 -
如上所述,模板选择表达式的作用相同。例如:
-
/2\d\d/
:接收并转换成功响应 -
/4\d\d/
:接收并转换不正确的请求错误 -
$default
:接收并转换所有意外响应
-
有关模板选择表达式的当前限制,请参阅模板选择表达式。
使用 API Gateway 控制台设置集成响应
要使用 API Gateway 控制台为 WebSocket API 设置路由集成响应,请执行以下操作:
-
登录到 API Gateway 控制台,选择 API,然后选择路由。
-
选择路由。
-
选择 Integration Response (集成响应)。
-
在 Integration Responses (集成响应) 下面,在 Response Selection Expression (响应选择表达式) 文本框中输入值。
-
在 Response Key (响应键) 下面,选择 Add Response(添加响应)。
-
要定义集成响应键,请在 New Response Key (新响应键) 文本框中输入键名称,然后选中复选标记图标。
-
选择模板选择表达式旁边的铅笔图标,然后输入表达式以供 API Gateway 在您的传出消息中查找。此表达式的计算结果应该是映射到其中一个响应模板的集成响应键值。
有关模板选择表达式的信息,请参阅模板选择表达式。
-
使用 Amazon CLI 设置集成响应
要使用 Amazon CLI 为 WebSocket API 设置路由集成响应,请调用 create-integration-response
命令:以下 CLI 命令显示创建 $default
集成响应的示例:
aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'