

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 API Gateway avec des intégrations privées à l'aide de l' AWS CLI (ancienne)
<a name="set-up-api-with-vpclink-cli"></a>

**Note**  
L'implémentation suivante des intégrations privées utilise les liaisons VPC V1. Les liens VPC V1 sont des ressources héritées. Nous vous recommandons d'utiliser les [liens VPC V2 pour REST](apigateway-vpc-links-v2.md). APIs

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 Network Load Balancer pour les intégrations privées d'API Gateway (ancienne version)](set-up-nlb-for-vpclink-using-console.md). 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 un `VpcLink` dans votre API. Vous n’avez pas besoin d’autorisations pour utiliser le `VpcLink`. Pour de plus amples informations, veuillez consulter [Accorder des autorisations à API Gateway pour créer un lien VPC (ancien)](grant-permissions-to-create-vpclink.md).

**Pour configurer une API avec l'intégration privée à l'aide de AWS CLI**

1. Utilisez la [create-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-vpc-link.html)commande 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 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"
   }
   ```

   La création du `VpcLink` par API Gateway prend entre 2 et 4 minutes. Lorsque l’opération se termine correctement, l’attribut `status` indique `AVAILABLE`. Vous pouvez le vérifier à l'aide de la [get-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-vpc-link.html)commande 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 tentez de créer un `VpcLink` 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 du `VpcLink`. 

   Notez la valeur `id` du `VpcLink` que vous venez de créer. Dans cet exemple de sortie, il s’agit de `gim7c3`. Vous en aurez besoin pour configurer l’intégration privée.

1. Utilisez la [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html)commande suivante pour créer une [https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html)ressource API Gateway :

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

   Notez la valeur `id` de `RestApi` et la valeur `rootResourceId` de `RestApi` dans le résultat renvoyé. Vous avez besoin de cette valeur pour effectuer d’autres opérations sur l’API. 

   Ensuite, vous allez créer une API avec seulement une méthode `GET` sur la ressource racine (`/`) et intégrer la méthode avec le `VpcLink`.

1. Utilisez la commande [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html) suivante pour créer la méthode `GET /` :

   ```
   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 proxy avec le `VpcLink`, vous devez également configurer au moins une réponse de méthode avec le code de statut `200`. Vous allez utiliser l’intégration proxy ici.

1. 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ètre `connection-id` pour fournir l’ID `VpcLink`. Vous pouvez utiliser une variable d’étape ou saisir directement l’ID du `VpcLink`. 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 ]

   Utilisez la commande [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) suivante pour utiliser l’ID `VpcLink` 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 ]

   Utilisez la commande [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) suivante afin d’utiliser une variable d’étape pour référencer l’ID du lien VPC. Lorsque vous déployez votre API dans une étape, vous devez définir l’ID du lien VPC.

   ```
   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 `connection-id`. Utilisez la commande [update-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-integration.html) suivante pour 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 liste JSON obtenue à l’aide de stringify comme valeur du paramètre `patch-operations`.

   Comme vous avez utilisé l’intégration proxy privée, votre API peut maintenant être déployée et testée.

1. 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](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) 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 autre ID `VpcLink` (par exemple, `asf9d7`), utilisez la commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante :

   ```
   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éral `VpcLink`, vous n’avez pas besoin de déployer votre API pour la tester. Utilisez la [test-invoke-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html)commande pour tester votre API avant son déploiement. 

1. 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 l’URL d’invocation de votre API dans un navigateur web pour afficher le résultat.