Richten Sie eine private Integration ein - Amazon API Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Richten Sie eine private Integration ein

Um eine private Integration mit einem Application Load Balancer oder Network Load Balancer zu erstellen, erstellen Sie eine HTTP-Proxyintegration, geben den zu verwendenden VPC-Link V2 an und geben den ARN eines Network Load Balancer oder eines Application Load Balancer an. Standardmäßig verwendet der private Integrationsdatenverkehr das HTTP-Protokoll. Um HTTPS zu verwenden, geben Sie einen an uri, der einen sicheren Servernamen enthält, z. B. https://example.com:443/test Ein vollständiges Tutorial zum Erstellen einer REST-API mit einer privaten Integration finden Sie unterTutorial: Erstellen einer REST-API mit einer privaten Integration.

Erstellen einer privaten Integration

Das folgende Verfahren zeigt, wie Sie eine private Integration erstellen, die über einen VPC-Link V2 eine Verbindung zu einem Load Balancer herstellt.

AWS-Managementkonsole

Ein Tutorial zum Erstellen einer privaten Integration finden Sie unter. Tutorial: Erstellen einer REST-API mit einer privaten Integration

AWS CLI

Der folgende put-integration-Befehl erstellt eine private Integration, die über einen VPC-Link V2 eine Verbindung zu einem Load Balancer herstellt:

aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id aaa000 \ --integration-target 'arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011' \ --uri 'https://example.com:443/path' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id bbb111

Anstatt die Verbindungs-ID direkt anzugeben, können Sie stattdessen eine Stufenvariable verwenden. Wenn Sie Ihre API in einer Phase bereitstellen, legen Sie die VPC-Link V2-ID fest. Der folgende put-integration-Befehl erstellt eine private Integration mithilfe einer Stage-Variablen für die VPC-Link V2-ID:

aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id aaa000 \ --integration-target 'arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011' \ --uri 'https://example.com:443/path' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id "\${stageVariables.vpcLinkV2Id}"

Achten Sie darauf, den Ausdruck der Stufenvariablen ($ {stageVariables.vpclInkV2ID}) in doppelte Anführungszeichen zu setzen und das $-Zeichen zu maskieren.

OpenAPI

Sie können eine API mit der privaten Integration durch Importieren der API-OpenAPI-Datei einrichten. Die Einstellungen werden ähnlich wie die OpenAPI-Definitionen einer API mit HTTP-Integrationen festgelegt.Dabei gelten jedoch die folgenden Ausnahmen:

  • Sie müssen connectionType explizit auf VPC_LINK festlegen.

  • Sie müssen connectionId explizit auf die ID eines VpcLinkV2 oder auf eine Stufenvariable festlegen, die auf die ID eines VpcLinkV2 verweist.

  • Der uri Parameter in der privaten Integration zeigt auf einen HTTP/HTTPS Endpunkt in der VPC, wird aber stattdessen verwendet, um den Host Header der Integrationsanfrage einzurichten.

  • Der Parameter uri in der privaten Integration mit einem HTTPS-Endpunkt in der VPC wird verwendet, um den angegebenen Domänennamen anhand des Namens in dem auf dem VPC-Endpunkt installierten Zertifikats zu überprüfen.

Sie können eine Stufenvariable als Referenz auf die VpcLinkV2-ID verwenden. Sie können den ID-Wert auch connectionId direkt zuweisen.

Die folgende JSON-formatierte API-OpenAPI-Datei zeigt ein Beispiel für eine API mit einem VPC-Link, auf den eine Stufenvariable (${stageVariables.vpcLinkIdV2}) verweist:

{ "swagger": "2.0", "info": { "version": "2017-11-17T04:40:23Z", "title": "MyApiWithVpcLinkV2" }, "host": "abcdef123.execute-api.us-west-2.amazonaws.com", "basePath": "/test", "schemes": [ "https" ], "paths": { "/": { "get": { "produces": [ "application/json" ], "responses": { "200": { "description": "200 response", "schema": { "$ref": "#/definitions/Empty" } } }, "x-amazon-apigateway-integration": { "responses": { "default": { "statusCode": "200" } }, "uri": "https://example.com:443/path", "passthroughBehavior": "when_no_match", "connectionType": "VPC_LINK", "connectionId": "${stageVariables.vpcLinkV2Id}", "integration-target": "arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011", "httpMethod": "GET", "type": "http_proxy" } } } }, "definitions": { "Empty": { "type": "object", "title": "Empty Schema" } } }

Aktualisieren Sie eine private Integration

Das folgende Beispiel aktualisiert den VPC-Link V2 für eine private Integration.

AWS-Managementkonsole
Um eine private Integration zu aktualisieren
  1. Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie eine REST-API mit einer privaten Integration.

  3. Wählen Sie die Ressource und Methode aus, die eine private Integration verwendet.

  4. Klicken Sie in der Registerkarte Integrationsanfrage unter Einstellungen für Integrationsanfragen auf Bearbeiten.

  5. Sie können die Einstellung Ihrer privaten Integration bearbeiten. Wenn Sie derzeit einen VPC-Link V1 verwenden, können Sie Ihren VPC-Link in einen VPC-Link V2 ändern.

  6. Wählen Sie Speichern.

  7. Sie müssen Ihre API erneut bereitstellen, damit die Änderungen wirksam werden.

AWS CLI

Der folgende Befehl update-integration aktualisiert eine private Integration so, dass sie einen VPC-Link V2 verwendet:

aws apigateway update-integration \ --rest-api-id a1b2c3d4e5 \ --resource-id a1b2c3 \ --http-method GET \ --patch-operations "[{\"op\":\"replace\",\"path\":\"/connectionId\",\"value\":\"pk0000\"}, {\"op\":\"replace\",\"path\":\"/uri\",\"value\":\"http://example.com\"}, {\"op\":\"replace\",\"path\":\"/integrationTarget\",\"value\":\"arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011\"}]"