Como posso passar um connectionID ou um token personalizado para a integração do VPC Link como cabeçalho para as APIs de WebSocket do Amazon API Gateway?
Quero passar um connectionID ou token personalizado para a integração do VPC Link como cabeçalho para minha API de WebSocket do Amazon API Gateway. Como faço isso?
Breve descrição
Para as APIs de WebSocket, o connectionId é necessário para enviar uma resposta de retorno de chamada do back-end. Por padrão, as APIs de WebSocket não passam o ConnectionId para a integração do link VPC.
Resolução
Usando o console do Amazon API Gateway e a CLI da AWS
Observação: se receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está usando a versão mais recente da AWS CLI.
1. Siga as instruções para criar um link VPC da API REST e associá-lo ao seu Network Load Balancer.
2. Siga as instruções para configurar uma integração com a API de WebSocket e criar um endpoint de integração privada do link VPC.
3. Para recuperar o ID de integração, execute o comando da CLI da AWS get-integrations semelhante ao seguinte:
aws apigatewayv2 get-integrations --api-id <api-id>
4. Crie e salve um arquivo JSON chamado integration.json no seguinte formato:
{ "ApiId": "<api-id>", "IntegrationId": "<integration id retrieved from previous step>", "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.<querysting-key>": "'static value'" //passing static value as querystring to backend } }
Nota: antes de prosseguir para a etapa 5, remova os comentários com as barras "//”.
5. Para atualizar a integração, execute o comando update-integration da CLI da AWS semelhante ao seguinte:
aws apigatewayv2 update-integration --cli-input-json file://integration.json
6. Para aplicar essas alterações, siga as instruções para implantar a API REST.
Usando o AWS CloudFormation
Se você gerencia o Amazon API Gateway usando o CloudFormation, você pode usar o recurso AWS::ApiGatewayV2::Integration para configurar parâmetros de solicitação semelhantes aos seguintes:
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
Você pode usar o mapeamento de dados para mapear dados de uma solicitação de rota para a integração de back-end do link da VPC. Para obter mais informações, consulte Mapear dados de solicitação de rota para parâmetros de solicitação de integração.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano