Richten Sie eine API-Gateway-API mit privaten Integrationen mithilfe von AWS CLI (Legacy) 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 API-Gateway-API mit privaten Integrationen mithilfe von AWS CLI (Legacy) ein

Anmerkung

Die folgende Implementierung von privaten Integrationen verwendet VPC-Links V1. VPC-Links V1 sind Legacy-Ressourcen. Wir empfehlen die Verwendung von VPC-Links V2 für REST APIs.

Das folgende Tutorial zeigt, wie Sie mit AWS CLI dem einen VPC-Link und eine private Integration erstellen. Die folgenden Voraussetzungen gelten:

Um eine API mit der privaten Integration einzurichten, verwenden Sie AWS CLI
  1. Verwenden Sie den folgenden create-vpc-linkBefehl, um ein VpcLink Targeting für den angegebenen Network Load Balancer zu erstellen:

    aws apigateway create-vpc-link \ --name my-test-vpc-link \ --target-arns arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef

    Die Ausgabe dieses Befehls bestätigt den Eingang der Anfrage und zeigt den PENDING-Status des soeben erstellten VpcLink an.

    { "status": "PENDING", "targetArns": [ "arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef" ], "id": "gim7c3", "name": "my-test-vpc-link" }

    Es dauert 2-4 Minuten, bis API Gateway die Erstellung des VpcLink abgeschlossen hat. Wenn der Vorgang erfolgreich abgeschlossen wird, lautet der status AVAILABLE. Sie können dies mit dem folgenden get-vpc-linkBefehl überprüfen:

    aws apigateway get-vpc-link --vpc-link-id gim7c3

    Wenn der Vorgang fehlschlägt, erhalten Sie den Status FAILED und die statusMessage mit der Fehlermeldung. Wenn Sie beispielsweise versuchen, VpcLink mit einem Network Load Balancer zu erstellen, der bereits einem VPC-Endpunkt zugewiesen ist, erhalten Sie Folgendes in der Eigenschaft statusMessage:

    "NLB is already associated with another VPC Endpoint Service"

    Erst nachdem der VpcLink erfolgreich erstellt wurde, können wir die API erstellen und über den VpcLink in die VPC-Ressource integrieren.

    Notieren Sie sich den id-Wert der neu erstellten VpcLink. In dieser Beispielausgabe ist dies gim7c3. Sie benötigen ihn zum Einrichten der privaten Integration.

  2. Verwenden Sie den folgenden create-rest-apiBefehl, um eine RestApiAPI-Gateway-Ressource zu erstellen:

    aws apigateway create-rest-api --name 'My VPC Link Test'

    Notieren Sie den id-Wert von RestApi und den rootResourceId-Wert von RestApi in den zurückgegebenen Ergebnissen. Sie benötigen diesen Wert später, um weitere Vorgänge in der API, auszuführen.

    Anschließend erstellen Sie eine API mit nur einer GET-Methode in der Root-Ressource (/) und integrieren die Methode im VpcLink.

  3. Verwenden Sie den folgenden put-method-Befehl, um die GET /-Methode zu erstellen:

    aws apigateway put-method \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --http-method GET \ --authorization-type "NONE"

    Wenn Sie die Proxy-Integration mit dem VpcLink nicht verwenden, müssen Sie außerdem mindestens eine Methodenantwort des 200-Statuscodes einrichten. Sie verwenden die Proxy-Integration hier.

  4. Nachdem Sie die GET /-Methode erstellt haben, richten Sie die Integration ein. Bei einer privaten Integration verwenden Sie den connection-id-Parameter zur Bereitstellung der VpcLink-ID. Sie können entweder eine Stufenvariable verwenden oder die VpcLink-ID direkt eingeben. Der Parameter uri wird nicht für das Routing von Anforderungen an Ihren Endpunkt verwendet, wohl aber zum Festlegen des Host-Headers und für die Zertifikatsvalidierung.

    Use the VPC link ID

    Führen Sie den put-integration-Befehl aus, um die VpcLink-ID direkt in der Integration zu verwenden:

    aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id gim7c3
    Use a stage variable

    Führen Sie den put-integration-Befehl aus, um eine Stufenvariable zu verwenden, die auf die VPC-Link-ID verweist. Wenn Sie Ihre API in einer Stufe bereitstellen, legen Sie die VPC-Link-ID fest.

    aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id "\${stageVariables.vpcLinkId}"

    Stellen Sie sicher, dass Sie den Stufenvariablenausdruck in doppelte Anführungszeichen (${stageVariables.vpcLinkId}) setzen und das Zeichen $ mit einem Escape-Zeichen versehen.

    Sie können die Integration auch jederzeit aktualisieren, um die connection-id zu ändern. Verwenden Sie den update-integration-Befehl, um Ihre Integration zu aktualisieren:

    aws apigateway update-integration \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --http-method GET \ --patch-operations '[{"op":"replace","path":"/connectionId","value":"${stageVariables.vpcLinkId}"}]'

    Verwenden Sie unbedingt eine in Text umgewandelte JSON-Liste als patch-operations-Parameterwert.

    Da Sie die private Proxy-Integration verwendet haben, ist Ihre API jetzt für die Bereitstellung und für Testläufe bereit.

  5. Wenn Sie die Stufenvariable zur Definition Ihrer connection-id verwendet haben, müssen Sie Ihre API bereitstellen, um sie testen zu können. Führen Sie den create-deployment-Befehl aus, um Ihre API mit einer Stufenvariablen bereitzustellen:

    aws apigateway create-deployment \ --rest-api-id abcdef123 \ --stage-name test \ --variables vpcLinkId=gim7c3

    Um die Stufenvariable mit einer anderen VpcLink-ID, beispielsweise asf9d7, zu aktualisieren, führen Sie den folgenden update-stage-Befehl aus:

    aws apigateway update-stage \ --rest-api-id abcdef123 \ --stage-name test \ --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7'

    Wenn Sie die connection-id-Eigenschaft mit dem VpcLink-ID-Literal hartcodieren, brauchen Sie Ihre API nicht bereitstellen, um sie testen zu können. Verwenden Sie den test-invoke-methodBefehl, um Ihre API zu testen, bevor sie bereitgestellt wird.

  6. Rufen Sie Ihre API mit dem folgenden Befehl auf:

    curl -X GET https://abcdef123.execute-api.us-east-2.amazonaws.com/test

    Alternativ können Sie die invoke-URL Ihrer API in einem Webbrowser eingeben, um das Ergebnis anzuzeigen.