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:
-
Sie benötigen einen Network Load Balancer, der mit Ihrer VPC-Quelle als Ziel erstellt und konfiguriert wurde. Weitere Informationen finden Sie unter Einen Network Load Balancer für private API-Gateway-Integrationen einrichten (veraltet). Dies muss mit Ihrer API AWS-Konto identisch sein. Sie benötigen den Network-Load-Balancer-ARN, um Ihren VPC-Link zu erstellen.
-
Sie benötigen die Berechtigungen zum Erstellen eines
VpcLinkin Ihrer API, um einenVpcLinkzu erstellen und zu verwalten. Zur Verwendung desVpcLinksind die Berechtigungen nicht erforderlich. Weitere Informationen finden Sie unter Erteilen Sie dem API Gateway Berechtigungen zum Erstellen eines VPC-Links (Legacy).
Um eine API mit der privaten Integration einzurichten, verwenden Sie AWS CLI
-
Verwenden Sie den folgenden create-vpc-linkBefehl, um ein
VpcLinkTargeting 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/1234567890abcdefDie Ausgabe dieses Befehls bestätigt den Eingang der Anfrage und zeigt den
PENDING-Status des soeben erstelltenVpcLinkan.{ "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
VpcLinkabgeschlossen hat. Wenn der Vorgang erfolgreich abgeschlossen wird, lautet derstatusAVAILABLE. Sie können dies mit dem folgenden get-vpc-linkBefehl überprüfen:aws apigateway get-vpc-link --vpc-link-idgim7c3Wenn der Vorgang fehlschlägt, erhalten Sie den Status
FAILEDund diestatusMessagemit der Fehlermeldung. Wenn Sie beispielsweise versuchen,VpcLinkmit einem Network Load Balancer zu erstellen, der bereits einem VPC-Endpunkt zugewiesen ist, erhalten Sie Folgendes in der EigenschaftstatusMessage:"NLB is already associated with another VPC Endpoint Service"Erst nachdem der
VpcLinkerfolgreich erstellt wurde, können wir die API erstellen und über denVpcLinkin die VPC-Ressource integrieren.Notieren Sie sich den
id-Wert der neu erstelltenVpcLink. In dieser Beispielausgabe ist diesgim7c3. Sie benötigen ihn zum Einrichten der privaten Integration. -
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 vonRestApiund denrootResourceId-Wert vonRestApiin 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 imVpcLink. -
Verwenden Sie den folgenden put-method-Befehl, um die
GET /-Methode zu erstellen:aws apigateway put-method \ --rest-api-idabcdef123\ --resource-idskpp60rab7\ --http-method GET \ --authorization-type "NONE"Wenn Sie die Proxy-Integration mit dem
VpcLinknicht verwenden, müssen Sie außerdem mindestens eine Methodenantwort des200-Statuscodes einrichten. Sie verwenden die Proxy-Integration hier. -
Nachdem Sie die
GET /-Methode erstellt haben, richten Sie die Integration ein. Bei einer privaten Integration verwenden Sie denconnection-id-Parameter zur Bereitstellung derVpcLink-ID. Sie können entweder eine Stufenvariable verwenden oder dieVpcLink-ID direkt eingeben. Der Parameteruriwird nicht für das Routing von Anforderungen an Ihren Endpunkt verwendet, wohl aber zum Festlegen desHost-Headers und für die Zertifikatsvalidierung.Sie können die Integration auch jederzeit aktualisieren, um die
connection-idzu ändern. Verwenden Sie den update-integration-Befehl, um Ihre Integration zu aktualisieren:aws apigateway update-integration \ --rest-api-idabcdef123\ --resource-idskpp60rab7\ --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.
-
Wenn Sie die Stufenvariable zur Definition Ihrer
connection-idverwendet 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-idabcdef123\ --stage-name test \ --variables vpcLinkId=gim7c3Um die Stufenvariable mit einer anderen
VpcLink-ID, beispielsweise, zu aktualisieren, führen Sie den folgenden update-stage-Befehl aus:asf9d7aws apigateway update-stage \ --rest-api-idabcdef123\ --stage-name test \ --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7'Wenn Sie die
connection-id-Eigenschaft mit demVpcLink-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. -
Rufen Sie Ihre API mit dem folgenden Befehl auf:
curl -X GET https://abcdef123.execute-api.us-east-2.amazonaws.com/testAlternativ können Sie die invoke-URL Ihrer API in einem Webbrowser eingeben, um das Ergebnis anzuzeigen.