WebSocket APIs在API閘道中設定資料對應 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

WebSocket APIs在API閘道中設定資料對應

資料映射可讓您將路由請求中的資料映射至後端整合。

注意

中 WebSocket APIs不支援的資料對應 AWS Management Console。您必須使用 AWS CLI AWS CloudFormation、或SDK來規劃資料對映。

將路由請求資料對應到整合請求參數

整合請求參數可以從任何定義的路由請求參數,請求內文、contextstage 的變量,以及靜態值進行映射。

下表顯示整合請求資料對映運算式。在表中,PARAM_NAME 是給定參數類型的路由請求參數的名稱。它必須符合規則表達式 '^[a-zA-Z0-9._$-]+$]'JSONPath_EXPRESSION 是要求主體JSON欄位的JSONPath運算式。

整合請求資料對應表達式
對應的資料來源 對應表達式
請求查詢字串 (僅支援 $connect 路由) route.request.querystring.PARAM_NAME
請求標頭 (僅支援 $connect 路由) route.request.header.PARAM_NAME
多值請求查詢字串 (僅支援 $connect 路由) route.request.multivaluequerystring.PARAM_NAME
多值請求標頭 (僅支援 $connect 路由) route.request.multivalueheader.PARAM_NAME
請求內文 route.request.body.JSONPath_EXPRESSION
階段變數 stageVariables.VARIABLE_NAME
環境變數 context.VARIABLE_NAME 必須是支援的環境變數之一。
靜態值 'STATIC_VALUE'。 該 STATIC_VALUE 是字串常值,且必須以單引號括住。

範例

下列 AWS CLI 範例設定資料對映。如需範例 AWS CloudFormation 範本,請參閱websocket-data-mapping.yaml

將用戶端對應 connectionId 至整合要求中的標頭

下列範例命令會將用戶端的 connectionId 映射至後端整合請求中的 connectionId 標頭。

aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.connectionId'='context.connectionId'

將查詢字串參數映射至整合請求中的標頭

下列範例命令會將 authToken 查詢字串參數映射至整合請求中的 authToken 標頭。

首先,將 authToken 查詢字符串參數新增到路由的請求參數。

aws apigatewayv2 update-route --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameters '{"route.request.querystring.authToken": {"Required": false}}'

接下來,將查詢字串參數映射至請求中的 authToken 標頭到後端整合。

aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.authToken'='route.request.querystring.authToken'

如有必要,請從路由的請求參數中刪除 authToken 查詢字串參數。

aws apigatewayv2 delete-route-request-parameter \ --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameter-key 'route.request.querystring.authToken'