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.
Configurez une API passerelle API avec des intégrations privées à l'aide du AWS CLI
Le didacticiel suivant montre comment utiliser le AWS CLI pour créer un VPC lien et une intégration privée. Les prérequis suivants sont requis :
-
Vous avez besoin d'un Network Load Balancer créé et configuré avec votre VPC source comme cible. Pour de plus amples informations, veuillez consulter Configurer un Network Load Balancer pour les intégrations privées de API Gateway. Ce doit être le même Compte AWS que le vôtreAPI. Vous avez besoin du Network Load Balancer ARN pour créer votre VPC lien.
-
Pour créer et gérer un
VpcLink
, vous devez disposer des autorisations nécessaires pour en créer unVpcLink
dans votreAPI. Vous n'avez pas besoin d'autorisations pour utiliser leVpcLink
. Pour de plus amples informations, veuillez consulter Autoriser API Gateway à créer un VPC lien.
Pour configurer une intégration privée API à l'aide de AWS CLI
-
La create-vpc-linkcommande suivante crée 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" }
APIGateway a besoin de 2 à 4 minutes pour terminer de créer le
VpcLink
. Lorsque l'opération se termine correctement, l'attributstatus
indiqueAVAILABLE
. Vous pouvez le vérifier en appelant 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 essayez de créer unVpcLink
avec un Network Load Balancer déjà associé à un VPC point de terminaison, vous obtenez ce qui suit sur lastatusMessage
propriété :"NLB is already associated with another VPC Endpoint Service"
Une fois
VpcLink
le créé avec succès, vous pouvez en créer un API et l'intégrer à la VPC ressource via leVpcLink
.Notez la
id
valeur de la nouvelle créationVpcLink
. Dans cet exemple de sortie, c'estgim7c3
. Vous en aurez besoin pour configurer l'intégration privée. -
La create-rest-apicommande suivante crée une
RestApi
ressource API Gateway :aws apigateway create-rest-api --name 'My VPC Link Test'
Notez la
RestApi
id
valeur « s » etRestApi
larootResourceId
valeur « s » dans le résultat renvoyé. Vous avez besoin de cette valeur pour effectuer d'autres opérations sur leAPI.À des fins d'illustration, nous allons créer une
GET
méthode API avec uniquement une méthode sur la ressource racine (/
) et intégrer la méthode àVpcLink
. -
Configurez la méthode
GET /
. Utilisez la commande put-method suivante et entrezId
as therest-api-id
etrootResourceId
as the :resource-id
aws apigateway put-method \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --http-method GET \ --authorization-type "NONE"Si vous n'utilisez pas l'intégration du proxy avec le
VpcLink
, vous devez également configurer au moins une méthode de réponse du code d'200
état. Dans le cas présent, nous allons utiliser l'intégration proxy. -
Après avoir créé la
GET /
méthode, vous configurez l'intégration. Dans le cas d'une intégration privée, vous utilisez leconnection-id
paramètre pour fournir l'VpcLink
ID. Vous pouvez utiliser une variable d'étape ou saisir directement l'VpcLink
ID. 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.À tout moment, vous pouvez également mettre à jour l'intégration pour modifier le
connection-id
. La commande update-integration suivante indique comment 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 JSON liste de chaînes comme valeur de paramètre.
patch-operations
Comme nous avons utilisé l'intégration du proxy privé, le vôtre API est désormais prêt pour le déploiement et les tests. Avec l'intégration sans proxy, vous devez également configurer la réponse de méthode et la réponse d'intégration, comme vous le feriez lors de la configuration d'une APIavec des intégrations HTTP personnalisées.
-
Si vous avez utilisé la variable stage pour définir votre
connection-id
, vous devez le déployer API pour le tester. La commande create-deployment suivante montre comment déployer le vôtre à l'APIaide d'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
, appelez la commande update-stage :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
connection-id
propriété avec l'VpcLink
identifiant littéral, vous n'avez pas besoin de le déployer API pour la tester. Utilisez la test-invoke-methodcommande pour tester votre appareil API avant de le déployer. -
Utilisez la commande suivante pour appeler votre API :
curl -X GET https://
abcdef123
.execute-api.us-east-2.amazonaws.com/testVous pouvez également saisir votre API « invoke- » URL dans un navigateur Web pour afficher le résultat.