設定 API Gateway 中 WebSocket API 的資料映射
資料映射可讓您將路由請求中的資料映射至後端整合。
注意
中不支援 WebSocket API 的資料對應AWS Management Console 您必須使用 AWS CLI、AWS CloudFormation 或 SDK 來設定資料映射。
將路由請求資料對應到整合請求參數
整合請求參數可以從任何定義的路由請求參數,請求內文、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 CLI 中使用常值搭配字串的正確格式。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的搭配 AWS CLI 中的字串使用引號和常值。
範例
下列 AWS CLI 範例會配置資料映射。如需範例 AWS CloudFormation 範本,請參閱 websocket-data-mapping.yaml
。
將用戶端的連線 ID 映射至整合請求中的標頭
以下 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'