Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Le didacticiel suivant montre comment utiliser le AWS CLI pour créer un lien VPC et une intégration privée. Les conditions préalables suivantes sont requises :
-
Vous avez besoin d’un équilibreur Network Load Balancer créé et configuré avec votre VPC source comme cible. Pour de plus amples informations, veuillez consulter Configuration d’un équilibreur Network Load Balancer pour les intégrations privées API Gateway. Il doit se trouver dans le même Compte AWS emplacement que votre API. Vous avez besoin de l’ARN de votre équilibreur Network Load Balancer pour créer votre lien VPC.
-
Pour créer et gérer un
VpcLink
, vous devez disposer des autorisations pour créer unVpcLink
dans votre API. Vous n’avez pas besoin d’autorisations pour utiliser leVpcLink
. Pour de plus amples informations, veuillez consulter Octroi d’autorisations pour créer un lien VPC dans API Gateway.
Pour configurer une API avec l'intégration privée à l'aide de AWS CLI
-
Utilisez la create-vpc-linkcommande suivante pour créer un
VpcLink
ciblage du Network Load Balancer spécifié :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
La sortie de cette commande accuse réception de la requête et indique l’état
PENDING
de la création deVpcLink
.{ "status": "PENDING", "targetArns": [ "arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef" ], "id": "gim7c3", "name": "my-test-vpc-link" }
La création du
VpcLink
par API Gateway prend entre 2 et 4 minutes. Lorsque l’opération se termine correctement, l’attributstatus
indiqueAVAILABLE
. Vous pouvez le vérifier à l'aide de la get-vpc-linkcommande suivante :aws apigateway get-vpc-link --vpc-link-id
gim7c3
Si l’opération échoue, vous obtenez le statut
FAILED
et un message d’erreur sousstatusMessage
. Par exemple, si vous tentez de créer unVpcLink
avec un équilibreur Network Load Balancer qui est déjà associé au point de terminaison du VPC, vous obtenez le message suivant au niveau de la propriétéstatusMessage
:"NLB is already associated with another VPC Endpoint Service"
Une fois la création du
VpcLink
réussie, vous pouvez créer une API et l’intégrer avec la ressource VPC par le biais duVpcLink
.Notez la valeur
id
duVpcLink
que vous venez de créer. Dans cet exemple de sortie, il s’agit degim7c3
. Vous en aurez besoin pour configurer l’intégration privée. -
Utilisez la create-rest-apicommande suivante pour créer une
RestApi
ressource API Gateway :aws apigateway create-rest-api --name 'My VPC Link Test'
Notez la valeur
id
deRestApi
et la valeurrootResourceId
deRestApi
dans le résultat renvoyé. Vous avez besoin de cette valeur pour effectuer d’autres opérations sur l’API.Ensuite, vous créez une API avec uniquement une
GET
méthode sur la ressource racine (/
) et vous intégrez la méthode àVpcLink
. -
Utilisez la commande put-method suivante pour créer la
GET /
méthode :aws apigateway put-method \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --http-method GET \ --authorization-type "NONE"Si vous n’utilisez pas l’intégration proxy avec le
VpcLink
, vous devez également configurer au moins une réponse de méthode avec le code de statut200
. Vous utilisez ici l'intégration du proxy. -
Après avoir créé la méthode
GET /
, vous devez configurer l’intégration. Pour une intégration privée, vous devez utiliser le paramètreconnection-id
pour fournir l’IDVpcLink
. Vous pouvez utiliser une variable d’étape ou saisir directement l’ID duVpcLink
. Le paramètreuri
n’est pas utilisé pour l’acheminement des demandes au point de terminaison, mais pour définir l’en-têteHost
et pour la validation de certificat.Utilisez la commande put-integration suivante pour utiliser l'
VpcLink
ID directement dans l'intégration :aws apigateway put-integration \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --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-idgim7c3
À tout moment, vous pouvez également mettre à jour l’intégration pour modifier
connection-id
. Utilisez la commande update-integration suivante pour mettre à jour votre intégration :aws apigateway update-integration \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --http-method GET \ --patch-operations '[{"op":"replace","path":"/connectionId","value":"${stageVariables.vpcLinkId}"}]'Assurez-vous d’utiliser une liste JSON obtenue à l’aide de stringify comme valeur du paramètre
patch-operations
.Comme vous avez utilisé l'intégration du proxy privé, votre API est désormais prête pour le déploiement et les tests.
-
Si vous avez utilisé la variable d’étape pour définir
connection-id
, vous devez déployer votre API pour la tester. Utilisez la commande create-deployment suivante pour déployer votre API avec une variable d'étape :aws apigateway create-deployment \ --rest-api-id
abcdef123
\ --stage-name test \ --variables vpcLinkId=gim7c3
Pour mettre à jour la variable d'étape avec un
VpcLink
identifiant différent, par exemple
, utilisez la commande update-stage suivante :asf9d7
aws apigateway update-stage \ --rest-api-id
abcdef123
\ --stage-name test \ --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7
'Lorsque vous codez en dur la propriété
connection-id
avec l’ID littéralVpcLink
, vous n’avez pas besoin de déployer votre API pour la tester. Utilisez la test-invoke-methodcommande pour tester votre API avant son déploiement. -
Utilisez la commande suivante pour appeler votre API :
curl -X GET https://
abcdef123
.execute-api.us-east-2.amazonaws.com/testVous pouvez également saisir l’URL d’invocation de votre API dans un navigateur web pour afficher le résultat.