¿Cómo se puede transmitir un connectionId o un token personalizado a la integración del enlace de la VPC como encabezado para las API de WebSocket de Amazon API Gateway?
Deseo transmitir un connectionId o un token personalizado a la integración del enlace de la VPC como un encabezado para la API de WebSocket de Amazon API Gateway. ¿Cómo se puede hacer esto?
Descripción breve
En el caso de las API de WebSocket, el connectionId es necesario para enviar una respuesta de devolución de llamada desde el backend. De forma predeterminada, las API de WebSocket no transmiten el ConnectionId a la integración del enlace de la VPC.
Resolución
Utilizar la consola de Amazon API Gateway y AWS CLI
Nota: Si se producen errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de que utiliza la versión más reciente de AWS CLI.
1. Siga las instrucciones para crear un enlace de la VPC de la API de REST y asociarlo al equilibrador de carga de red.
2. Siga las instrucciones para configurar una integración de la API de WebSocket y crear un punto de conexión de integración privado de enlace de la VPC.
3. Para recuperar el ID de integración, ejecute el comando de AWS CLI get-integrations de forma similar a la siguiente:
aws apigatewayv2 get-integrations --api-id <api-id>
4. Cree y guarde un archivo JSON llamado integration.json con el siguiente 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 pasar al paso 5, elimine los comentarios señalados con las barras inclinadas “//”.
5. Para actualizar la integración, ejecute el comando de AWS CLI update-integration de forma similar a la siguiente:
aws apigatewayv2 update-integration --cli-input-json file://integration.json
6. Para aplicar estos cambios, siga las instrucciones para implementar la API de REST.
Utilizar AWS CloudFormation
Si administra Amazon API Gateway mediante CloudFormation, puede utilizar el recurso AWS::ApiGatewayV2::Integration para configurar parámetros de solicitud de forma similar a la siguiente:
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
Puede utilizar la asignación de datos para asignar datos de una solicitud de ruta a la integración de backend del enlace de la VPC. Para obtener más información, consulte Asignar datos de solicitud de ruta a los parámetros de solicitud de integración.
Información relacionada

Contenido relevante
- OFICIAL DE AWSActualizada hace 7 meses
- OFICIAL DE AWSActualizada hace 6 meses
- ¿Cómo puedo solucionar los errores 410 GoneException con las API de WebSocket de Amazon API Gateway?OFICIAL DE AWSActualizada hace 7 meses
- OFICIAL DE AWSActualizada hace 8 meses