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:
-
Sie benötigen einen Network Load Balancer, der mit Ihrer VPC Quelle als Ziel erstellt und konfiguriert wurde. Weitere Informationen finden Sie unter Richten Sie einen Network Load Balancer für private API Gateway-Integrationen ein. Dieser muss mit Ihrem AWS-Konto API identisch sein. Sie benötigen den Network Load BalancerARN, um Ihren VPC Link zu erstellen.
-
Um einen zu erstellen und zu verwalten
VpcLink
, benötigen Sie die Berechtigungen zum Erstellen einesVpcLink
in IhremAPI. Sie benötigen keine Berechtigungen, um das zu verwendenVpcLink
. Weitere Informationen finden Sie unter Erteilen Sie API Gateway die Erlaubnis, einen VPC Link zu erstellen.
Um eine API mit der privaten Integration einzurichten, verwenden Sie AWS CLI
-
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 erstelltenVpcLink
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 derstatus
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 diestatusMessage
mit der Fehlermeldung. Wenn Sie beispielsweise versuchen, einenVpcLink
mit einem Network Load Balancer zu erstellen, der bereits mit einem VPC Endpunkt verknüpft ist, erhalten Sie in derstatusMessage
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. -
Der folgende create-rest-apiBefehl erstellt eine API
RestApi
Gateway-Ressource:aws apigateway create-rest-api --name 'My VPC Link Test'
Notieren Sie
RestApi
sich denid
WertRestApi
von und denrootResourceId
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
. -
Richten Sie die
GET /
-Methode ein. Verwenden Sie den folgenden Befehl put-method und geben Sie dieId
alsrest-api-id
und dierootResourceId
als ein:resource-id
aws apigateway put-method \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --http-method GET \ --authorization-type "NONE"Wenn Sie die Proxyintegration nicht mit dem verwenden
VpcLink
, müssen Sie auch mindestens eine Methodenantwort mit dem200
Statuscode einrichten. In diesem Beispiel verwenden wir die Proxy-Integration. -
Nachdem Sie die
GET /
Methode erstellt haben, richten Sie die Integration ein. Bei einer privaten Integration verwenden Sie denconnection-id
Parameter, um dieVpcLink
ID anzugeben. Sie können entweder eine Stufenvariable verwenden oder dieVpcLink
ID direkt eingeben. Der Parameteruri
wird 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 zu ändern
connection-id
. Der folgende Befehl update-integration zeigt, wie Sie Ihre Integration aktualisieren können:aws apigateway update-integration \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --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.
-
Wenn Sie die Stage-Variable verwendet haben, um Ihre zu definieren
connection-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 aktualisieren
, rufen Sie beispielsweise den Befehl update-stage auf:asf9d7
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 demVpcLink
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. -
Verwenden Sie den folgenden Befehl, um Ihren API aufzurufen:
curl -X GET https://
abcdef123
.execute-api.us-east-2.amazonaws.com/testAlternativ können Sie Ihren API Invoke- URL in einen Webbrowser eingeben, um das Ergebnis anzuzeigen.