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

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

Um eine API mit der privaten Integration einzurichten, verwenden Sie AWS CLI
  1. Mit dem folgenden create-vpc-linkBefehl wird ein VpcLink Targeting für den angegebenen Network Load Balancer erstellt.

    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 von abgeschlossen hat. VpcLink Wenn der Vorgang erfolgreich abgeschlossen wird, lautet der status AVAILABLE. Sie können dies überprüfen, indem Sie den folgenden get-vpc-linkBefehl aufrufen:

    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, einen VpcLink mit einem Network Load Balancer zu erstellen, der bereits mit einem VPC Endpunkt verknüpft ist, erhalten Sie in der statusMessage Eigenschaft Folgendes:

    "NLB is already associated with another VPC Endpoint Service"

    Nachdem der VpcLink erfolgreich erstellt wurde, können Sie einen erstellen API und ihn über den in die VPC Ressource integrieren. VpcLink

    Notieren Sie sich den id Wert der neu erstelltenVpcLink. In dieser Beispielausgabe ist esgim7c3. Sie benötigen ihn zum Einrichten der privaten Integration.

  2. Der folgende create-rest-apiBefehl erstellt eine API RestApiGateway-Ressource:

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

    Notieren Sie RestApi sich den id Wert RestApi von und den rootResourceId Wert von im zurückgegebenen Ergebnis. Sie benötigen diesen Wert, um weitere Operationen an der durchzuführenAPI.

    Zur Veranschaulichung erstellen wir eine API mit nur einer GET Methode auf der Root-Ressource (/) und integrieren die Methode in dieVpcLink.

  3. Richten Sie die GET /-Methode ein. Verwenden Sie den folgenden Befehl put-method und geben Sie die Id als rest-api-id und die rootResourceId als ein: resource-id

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

    Wenn Sie die Proxyintegration nicht mit dem verwendenVpcLink, müssen Sie auch mindestens eine Methodenantwort mit dem 200 Statuscode einrichten. In diesem Beispiel verwenden wir 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, um die VpcLink ID anzugeben. 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

    Der folgende Befehl put-integration verwendet die VpcLink ID direkt in der Integration:

    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

    Der folgende Put-Integrations-Befehl verwendet eine Stage-Variable, um auf die Link-ID zu verweisen. VPC Wenn Sie Ihre API in einer Phase 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 zu ändernconnection-id. Der folgende Befehl update-integration zeigt, wie Sie Ihre Integration aktualisieren können:

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

    Stellen Sie sicher, dass Sie eine stringifizierte JSON Liste als Parameterwert verwenden. patch-operations

    Da wir die private Proxy-Integration verwendet haben, API ist Ihr jetzt bereit für die Bereitstellung und für Testläufe. Bei der Integration ohne Proxy müssen Sie auch die Methodenantwort und die Integrationsreaktion einrichten, genau wie bei der Einrichtung einer Integration APImit HTTP benutzerdefinierten Integrationen.

  5. Wenn Sie die Stage-Variable verwendet haben, um Ihre zu definierenconnection-id, müssen Sie Ihre bereitstellen, um API sie zu testen. Der folgende Befehl create-deployment zeigt, wie Sie Ihren API mit einer Stage-Variablen bereitstellen:

    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, rufen Sie beispielsweise den Befehl update-stage auf:

    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 fest codieren, müssen Sie Ihre API nicht bereitstellen, um sie zu testen. Verwenden Sie den test-invoke-methodBefehl, um Ihre zu testen, API bevor sie bereitgestellt wird.

  6. Verwenden Sie den folgenden Befehl, um Ihren API aufzurufen:

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

    Alternativ können Sie Ihren API Invoke- URL in einen Webbrowser eingeben, um das Ergebnis anzuzeigen.