Come posso passare un token connectionId o personalizzato all'integrazione VPC Link come intestazione per le API WebSocket di Gateway Amazon API?

3 minuti di lettura
0

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

Configurazione delle integrazioni di API WebSocket