数据映射 使您能够将数据从路由请求映射到后端集成。
注意
中不支持 WebSocket API 的数据映射AWS Management Console 必须使用 AWS CLI、AWS CloudFormation 或开发工具包配置数据映射。
将路由请求数据映射至集成请求参数
可以从任何定义的路由请求参数、请求正文、context 或 stage 变量以及静态值映射集成请求参数。
下表显示集成请求数据映射表达式。在此表中,
是给定参数类型的路由请求参数的名称。它必须匹配正则表达式 PARAM_NAME
'^[a-zA-Z0-9._$-]+$]'
。JSONPath_EXPRESSION
是请求正文的 JSON 字段的 JSONPath 表达式。
映射的数据来源 | 映射表达式 |
---|---|
请求查询字符串(仅对于 $connect 路由才支持) |
route.request.querystring. |
请求标头(仅对于 $connect 路由才支持) |
route.request.header. |
多值请求查询字符串(仅对于 $connect 路由才支持) |
route.request.multivaluequerystring. |
多值请求标头(仅对于 $connect 路由才支持) |
route.request.multivalueheader. |
请求正文 | route.request.body. |
阶段变量 | stageVariables. |
上下文变量 | context. ,必须为受支持的上下文变量之一。 |
静态值 | 。STATIC_VALUE 为字符串文本值,必须括在单引号内。 |
示例
以下 AWS CLI 示例配置数据映射。有关示例 AWS CloudFormation 模板,请参阅 websocket-data-mapping.yaml
。
将客户端的 connectionId 映射到集成请求中的标头
以下 update-integration 命令将客户端的 connectionId
映射到发送给后端集成的请求中的 connectionId
标头。
aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.connectionId'='context.connectionId'
将查询字符串参数映射到集成请求中的标头
以下示例将 authToken
查询字符串参数映射到集成请求中的 authToken
标头。
-
使用以下 update-route 命令,将
authToken
查询字符串参数添加到路由的请求参数中。aws apigatewayv2 update-route --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameters '{"route.request.querystring.authToken": {"Required": false}}'
-
使用以下 update-integration 命令,将查询字符串参数映射到发送给后端集成的请求中的
authToken
标头。aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.authToken'='route.request.querystring.authToken'
-
(可选)如有必要,请使用以下 delete-route-request-parameter,从路由的请求参数中删除
authToken
查询字符串参数。aws apigatewayv2 delete-route-request-parameter \ --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameter-key 'route.request.querystring.authToken'