API Gateway에서 WebSocket API에 대한 데이터 매핑 설정
데이터 매핑을 사용하면 라우팅 요청의 데이터를 백엔드 통합에 매핑할 수 있습니다.
참고
웹 소켓 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 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'