Come posso passare un token connectionId o personalizzato all'integrazione VPC Link come intestazione per le API WebSocket di Gateway Amazon API?
Voglio passare un token connectionId o personalizzato all'integrazione di VPC Link come intestazione per la mia API WebSocket di Gateway Amazon API. In che modo posso farlo?
Breve descrizione
Per le API WebSocket, per inviare una risposta di callback dal backend è necessario connectionId. Per impostazione predefinita, le API WebSocket non trasferiscono connectionId all'integrazione di VPC Link.
Risoluzione
Utilizzo della console di Gateway Amazon API e AWS CLI
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.
1. Segui le istruzioni per creare un collegamento VPC REST API e associarlo al tuo Network Load Balancer.
2. Segui le istruzioni per configurare un'integrazione API WebSocket e creare un endpoint di integrazione privato con collegamento VPC.
3. Per recuperare l'ID di integrazione, esegui il comando get-integrations di AWS CLI come riportato di seguito:
aws apigatewayv2 get-integrations --api-id <api-id>
4. Crea e salva un file JSON denominato integration.json nel seguente 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: prima di procedere con il passaggio 5, rimuovi i commenti annotati con le barre "//".
5. Per aggiornare l'integrazione, esegui il comando update-integration di AWS CLI come riportato di seguito:
aws apigatewayv2 update-integration --cli-input-json file://integration.json
6. Per applicare queste modifiche, segui le istruzioni per implementare REST API.
Utilizzo di AWS CloudFormation
Se gestisci Gateway Amazon API utilizzando CloudFormation, puoi utilizzare la risorsa AWS::ApiGatewayV2::Integration per configurare parametri di richiesta come riportato di seguito:
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
Puoi utilizzare la mappatura dei dati per mappare i dati da una richiesta di instradamento all'integrazione del backend del collegamento VPC. Per ulteriori informazioni, consulta Mappatura dei dati delle richieste di instradamento ai parametri della richiesta di integrazione.
Informazioni correlate
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa