Configurez une API passerelle API avec des intégrations privées à l'aide du AWS CLI - APIPasserelle Amazon

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 unVpcLink, vous devez disposer des autorisations nécessaires pour en créer un VpcLink 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
  1. 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 de VpcLink.

    { "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 leVpcLink. Lorsque l'opération se termine correctement, l'attribut status indique AVAILABLE. 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 sous statusMessage. Par exemple, si vous essayez de créer un VpcLink avec un Network Load Balancer déjà associé à un VPC point de terminaison, vous obtenez ce qui suit sur la statusMessage 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.

  2. La create-rest-apicommande suivante crée une RestApiressource API Gateway :

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

    Notez la RestApi id valeur « s » et RestApi la rootResourceId 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.

  3. Configurez la méthode GET /. Utilisez la commande put-method suivante et entrez Id as the rest-api-id et rootResourceId as the : resource-id

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

    Si vous n'utilisez pas l'intégration du proxy avec leVpcLink, 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.

  4. Après avoir créé la GET / méthode, vous configurez l'intégration. Dans le cas d'une intégration privée, vous utilisez le connection-id paramètre pour fournir l'VpcLinkID. Vous pouvez utiliser une variable d'étape ou saisir directement l'VpcLinkID. Le paramètre uri n'est pas utilisé pour l'acheminement des demandes au point de terminaison, mais pour définir l'en-tête Host et pour la validation de certificat.

    Use the VPC link ID

    La commande put-integration suivante utilise l'VpcLinkID directement dans l'intégration :

    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

    La commande put-integration suivante utilise une variable d'étape pour référencer l'ID du VPC lien. Lorsque vous déployez le API vôtre sur une étape, vous définissez l'ID du VPC lien.

    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}"

    Assurez-vous de délimiter l'expression de la variable d'étape avec des guillemets droits (${stageVariables.vpcLinkId}) et d'y ajouter le caractère d'échappement $.

    À tout moment, vous pouvez également mettre à jour l'intégration pour modifier leconnection-id. La commande update-integration suivante indique comment mettre à jour votre intégration :

    aws apigateway update-integration \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --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.

  5. Si vous avez utilisé la variable stage pour définir votreconnection-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 exempleasf9d7, appelez la commande update-stage :

    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'VpcLinkidentifiant 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.

  6. Utilisez la commande suivante pour appeler votre API :

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

    Vous pouvez également saisir votre API « invoke- » URL dans un navigateur Web pour afficher le résultat.