Ich möchte eine ConnectionID oder ein benutzerdefiniertes Token als Header für meine Amazon API Gateway WebSocket-API an die VPC-Link-Integration übergeben.
Kurzbeschreibung
Eine ConnectionID ist erforderlich, um eine Callback-Antwort vom Backend für WebSocket-APIs zu senden. Standardmäßig übergeben WebSocket-APIs die ConnectionID nicht an die VPC-Link-Integration.
Um eine ConnectionID oder ein benutzerdefiniertes Token zu übergeben, verwenden Sie die API Gateway-Konsole und das AWS Command Line Interface (AWS CLI) oder verwenden Sie AWS CloudFormation.
Behebung
**Hinweis:**Wenn Sie beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhalten, finden Sie weitere Informationen unter Beheben von AWS CLI-Fehlern. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Verwenden der API Gateway-Konsole und die AWS CLI
Führen Sie die folgenden Schritte aus:
-
Folgen Sie den Anweisungen, um einen REST-API-VPC-Link zu erstellen und ihn Ihrem Network Load Balancer zuzuordnen.
-
Folgen Sie den Anweisungen, um eine WebSocket-API-Integration einzurichten und einen privaten VPC-Link-Integrationsendpunkt zu erstellen.
-
Um die Integrations-ID abzurufen, führen Sie den AWS-CLI-Befehl get-integrations aus:
aws apigatewayv2 get-integrations --api-id <api-id>
-
Erstellen und speichern Sie eine JSON-Datei mit dem Namen integration.json im folgenden Format:
{
"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'"
}
}
-
Um die Integration zu aktualisieren, führen Sie den AWS-CLI-Befehl update-integration ähnlich dem folgenden aus:
aws apigatewayv2 update-integration --cli-input-json file://integration.json
-
Folgen Sie den Anweisungen zur Bereitstellung der WebSocket-API, um diese Änderungen anzuwenden.
CloudFormation verwenden
Wenn Sie CloudFormation zur Verwaltung von API Gateway verwenden, verwenden Sie die Ressource AWS: :ApiGatewayV2: :Integration, um Anforderungsparameter ähnlich den folgenden zu konfigurieren:
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
Sie können die Datenzuordnung verwenden, um Daten aus einer Routenanforderung der VPC-Link-Backend-Integration zuzuordnen. Weitere Informationen finden Sie unter Zuordnen von Routenanforderungsdaten zu Integrationsanforderungsparametern.
Ähnliche Informationen
Integrationen für die WebSocket-API in API Gateway