connectionId 또는 사용자 지정 토큰을 Amazon API Gateway WebSocket API의 헤더로 VPC 링크 통합에 전달하고 싶습니다.
간략한 설명
WebSocket API용 백엔드에서 콜백 응답을 보내려면 connectionId가 필요합니다. 기본적으로 WebSocket API는 connectionId를 VPC 링크 통합에 전달하지 않습니다.
connectionId 또는 사용자 지정 토큰을 전달하려면 API Gateway 콘솔과 AWS Command Line Interface(AWS CLI)를 사용하거나 AWS CloudFormation을 사용합니다.
해결 방법
**참고:AWS CLI 명령을 실행할 때 오류가 발생하면, **AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
API Gateway 콘솔과 AWS CLI를 사용하세요.
다음 단계를 완료하세요.
-
지침에 따라 REST API VPC 링크를 생성하고 이를 Network Load Balancer에 연결합니다.
-
지침에 따라 WebSocket API 통합을 설정하고 VPC 링크 프라이빗 통합 엔드포인트를 생성하세요.
-
연동 ID를 검색하려면 AWS CLI 명령 get-integrations를 실행합니다.
aws apigatewayv2 get-integrations --api-id <api-id>
-
다음 형식으로 된 integration.json이라는 JSON 파일을 생성하여 저장합니다.
{
"ApiId": "<api-id>",
"IntegrationId": "<integration id retrieved from previous step>",
"RequestParameters": {
"integration.request.header.ConnectionId": "context.connectionId",
"integration.request.header.<header-key>": "route.request.body.<parameter>",
"integration.request.querystring.<querysting-key>": "'static value'"
}
}
-
통합을 업데이트하려면 다음과 비슷한 AWS CLI 명령 update-integration 명령을 실행합니다.
aws apigatewayv2 update-integration --cli-input-json file://integration.json
-
이러한 변경 사항을 적용하려면 지침에 따라 WebSocket API를 배포하세요.
CloudFormation 사용
CloudFormation을 사용하여 API Gateway를 관리하는 경우, AWS::ApiGatewayV2::Integration 리소스를 사용하여 다음과 비슷한 요청 파라미터를 구성합니다.
Integration:
Type: AWS::ApiGatewayV2::Integration
Properties:
ApiId: !Ref websocket
ConnectionId: !Ref <VPC-Link-connection-id>
ConnectionType: VPC_LINK
IntegrationMethod: <HTTP method to backend >
IntegrationType: <HTTP_PROXY/HTTP>
IntegrationUri: "<endpoint-url>"
RequestParameters:
"integration.request.header.connectionId": "context.connectionId" #passing context variable 'connectionId' as ConnectionId header to backend
"integration.request.header.<header-key>": "route.request.body.<parameter>" #passing a request body parameter as header to backend
"integration.request.querystring.<querystring-key>": "'static value'" #passing static value as querystring to backend
데이터 매핑을 사용하여 라우팅 요청의 데이터를 VPC 링크 백엔드 통합에 매핑할 수 있습니다. 자세한 내용을 알아보려면 통합 요청 파라미터에 라우팅 요청 데이터 매핑을 참조하세요.
관련 정보
API Gateway의 WebSocket API 통합