Richten Sie eine API-Gateway-API mit privaten Integrationen ein, indem Sie den AWS CLI - 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 ein, indem Sie den AWS CLI

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.

    Als Nächstes erstellen Sie eine API mit nur einer GET Methode auf der Root-Ressource (/) und integrieren die Methode in dieVpcLink.

  3. Verwenden Sie den folgenden Befehl put-method, 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 hier die Proxy-Integration.

  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

    Verwenden Sie den folgenden Befehl put-integration, 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

    Verwenden Sie den folgenden Befehl put-integration, um mithilfe einer Stage-Variablen auf die VPC-Link-ID zu verweisen. 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 folgenden Befehl update-integration, 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 bereit für die Bereitstellung und für Testläufe.

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

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

    Um die Stage-Variable mit einer anderen VpcLink ID zu aktualisierenasf9d7, verwenden Sie beispielsweise den folgenden Befehl update-stage:

    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.