

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.

# Didacticiel : création d’une API HTTP avec une intégration privée à un service Amazon ECS
<a name="http-api-private-integration"></a>

Dans ce didacticiel, vous créerez une API sans serveur qui se connecte à un service Amazon ECS qui s’exécute dans un VPC Amazon. Les clients en dehors de votre VPC Amazon peuvent utiliser l’API pour accéder à votre service Amazon ECS. 

Ce didacticiel vous prendra environ 1 heure. Tout d'abord, vous utilisez un CloudFormation modèle pour créer un service Amazon VPC et Amazon ECS. Ensuite, vous utilisez la console API Gateway pour créer un lien VPC. Le lien VPC permet à API Gateway d’accéder à l’service Amazon ECS qui s’exécute dans votre VPC Amazon. Ensuite, vous créez une API HTTP qui utilise le lien VPC pour vous connecter à votre service Amazon ECS. Enfin, vous testez votre API.

Lorsque vous appelez votre API HTTP, API Gateway achemine la demande vers votre service Amazon ECS via votre lien VPC, puis renvoie la réponse du service.

![\[Vue d’ensemble de l’API HTTP que vous créez dans ce didacticiel.\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/private-integration.png)


Pour suivre ce didacticiel, vous avez besoin d'un AWS compte et d'un Gestion des identités et des accès AWS utilisateur disposant d'un accès à la console. Pour de plus amples informations, veuillez consulter [Configuration d’API Gateway avant son utilisation](setting-up.md).

Dans ce didacticiel, vous utiliserez l’ AWS Management Console. Pour un CloudFormation modèle qui crée cette API et toutes les ressources associées, consultez [template.yaml](samples/private-integration-full-template.zip).

**Topics**
+ [Étape 1 : créer un service Amazon ECS](#http-api-private-integration-create-ecs-service)
+ [Étape 2 : créer un lien VPC](#http-api-private-integration-vpc-link)
+ [Étape 3 : créer une API HTTP](#http-api-private-integration-create-api)
+ [Étape 4 : créer une route](#http-api-private-integration-create-routes)
+ [Étape 5 : créer une intégration](#http-api-private-integration-create-integration)
+ [Étape 6 : tester votre API](#http-api-private-integration-invoke-api)
+ [Étape 7 : nettoyer](#http-api-private-integration-cleanup)
+ [Prochaines étapes : Automatisez avec CloudFormation](#http-api-private-integration-next-steps)

## Étape 1 : créer un service Amazon ECS
<a name="http-api-private-integration-create-ecs-service"></a>

Amazon ECS est un service de gestion de conteneurs qui facilite l’exécution, l’arrêt et la gestion des conteneurs Docker sur un cluster. Dans ce didacticiel, vous exécuterez votre cluster sur une infrastructure sans serveur gérée par Amazon ECS.

Téléchargez et décompressez [ce CloudFormation modèle](samples/private-integration-cfn.zip), qui crée toutes les dépendances du service, y compris un Amazon VPC. Vous utilisez le modèle pour créer un service Amazon ECS qui utilise un Application Load Balancer.

**Pour créer une CloudFormation pile**

1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Choisissez **Créer une pile**, puis choisissez **Avec de nouvelles ressources (standard).**

1. Dans **Spécifier le modèle**, choisissez **Charger un modèle de fichier**.

1. Sélectionnez le modèle que vous avez téléchargé.

1. Choisissez **Suivant**. 

1. Pour **Nom de la pile**, saisissez **http-api-private-integrations-tutorial**, puis choisissez **Suivant**.

1. Pour **Configurer les options de pile**, choisissez **Suivant**.

1. Pour les **fonctionnalités**, reconnaissez que CloudFormation vous pouvez créer des ressources IAM dans votre compte.

1. Choisissez **Suivant**, puis **Soumettre**.

CloudFormation fournit le service ECS, ce qui peut prendre quelques minutes. Lorsque le statut de votre CloudFormation pile est **CREATE\$1COMPLETE**, vous êtes prêt à passer à l'étape suivante.

## Étape 2 : créer un lien VPC
<a name="http-api-private-integration-vpc-link"></a>

Un lien VPC permet à API Gateway d’accéder aux ressources privées dans un VPC Amazon. Vous utilisez un lien VPC pour permettre aux clients d’accéder à votre service Amazon ECS via votre API HTTP.

**Pour créer un lien VPC**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Dans le panneau de navigation principal, choisissez **Liens VPC**, puis **Créer**.

   Vous devrez peut-être sélectionner l’icône Menu pour ouvrir le volet de navigation principal.

1. Pour **Choisir une version de lien VPC, sélectionnez Lien** **VPC** pour HTTP. APIs

1. Pour **Nom**, saisissez **private-integrations-tutorial**.

1. Pour **VPC**, choisissez le VPC que vous avez créé à l’étape 1. Son nom doit commencer par **PrivateIntegrationsStack**.

1. Pour **Sous-réseaux**, sélectionnez les deux sous-réseaux privés de votre VPC. Leurs noms finissent par `PrivateSubnet`.

1. Pour **Groupes de sécurité**, sélectionnez l’ID de groupe commençant par `private-integrations-tutorial` et contenant la description `PrivateIntegrationsStack/PrivateIntegrationsTutorialService/Service/SecurityGroup`.

1. Choisissez **Créer**.

Après avoir créé votre lien VPC, API Gateway alloue aux interfaces réseau Elastic l’accès à votre VPC. Ce processus peut prendre quelques minutes. En attendant, vous pouvez créer votre API.

## Étape 3 : créer une API HTTP
<a name="http-api-private-integration-create-api"></a>

L’API HTTP fournit un point de terminaison HTTP pour votre service Amazon ECS. Au cours de cette étape, vous créez une API vide. Dans les étapes 4 et 5, vous configurerez une route et une intégration pour connecter votre API et votre service Amazon ECS.



**Pour créer une API HTTP**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez **Create API (Créer une API)**. Ensuite, sous **HTTP API (API HTTP)**, choisissez **Build (Création)**.

1. Sous **API name (Nom de l’API)**, saisissez **http-private-integrations-tutorial**.

1. Pour le **type d'adresse IP**, sélectionnez **IPv4**.

1. Choisissez **Suivant**.

1. Sous **Configure routes (Configurer des routes)**, choisissez **Next (Suivant)** afin d’ignorer la création de routes. Vous créerez des routes ultérieurement.

1. Passez en revue l’étape créée par API Gateway pour vous. API Gateway crée une étape `$default` avec les déploiements automatiques activés, ce qui constitue le meilleur choix pour ce didacticiel. Choisissez **Suivant**.

1. Choisissez **Créer**.

## Étape 4 : créer une route
<a name="http-api-private-integration-create-routes"></a>

Les routes permettent d’envoyer les demandes d’API entrantes aux ressources backend. Les routes se composent de deux parties : une méthode HTTP et un chemin de ressource (par exemple, `GET /items`. Pour cet exemple d’API, nous créerons une route.

**Pour créer une route**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez votre API.

1. Choisissez **Routes**.

1. Choisissez **Créer**.

1. Pour **Méthode**, choisissez **ANY**.

1. Pour le chemin, saisissez **/\$1proxy\$1\$1**. Le `{proxy+}` à la fin du chemin est une variable de chemin gourmand. API Gateway envoie toutes les requêtes à votre API à cette route.

1. Choisissez **Créer**.

## Étape 5 : créer une intégration
<a name="http-api-private-integration-create-integration"></a>

Vous créez une intégration afin de connecter une route aux ressources backend.

**Pour créer une intégration**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez votre API.

1. Choisissez **Integrations (Intégrations)**.

1. Choisissez **Manage integrations (Gérer les intégrations)**, puis **Create (Créer)**.

1. Pour **Attacher cette intégration à une route**, sélectionnez la route **ANY/\$1proxy\$1\$1** que vous avez créé précédemment.

1. Pour **Type d’intégration**, choisissez **Ressource privée**.

1. Pour les **Détails de l’intégration**, choisissez **Sélectionner manuellement**.

1. Pour **Service cible**, choisissez **ALB/NLB**.

1. Pour **Équilibreur de charge**, choisissez l’équilibreur de charge que vous avez créé avec le modèle CloudFormation à l’étape 1. Son nom devrait commencer par **HTTP-Priva**.

1. Pour **Écouteur**, choisissez **HTTP 80**.

1. Pour **Lien VPC**, choisissez le lien VPC que vous avez créé à l’étape 2. Son nom devrait être `private-integrations-tutorial`.

1. Choisissez **Créer**.

Pour vérifier que votre route et votre intégration sont correctement configurés, sélectionnez **Attacher les intégrations aux routes**. La console indique que vous disposez d’une route `ANY /{proxy+}` avec une intégration à un équilibreur de charge VPC.

![\[La console indique que vous disposez d’une route /{proxy+} avec une intégration à l’équilibreur de charge dans un VPC.\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/private-integration-tutorial-route.png)


Vous êtes désormais prêt à tester votre API.

## Étape 6 : tester votre API
<a name="http-api-private-integration-invoke-api"></a>

Ensuite, vous testez votre API pour vous assurer qu’elle fonctionne. Pour plus de simplicité, appelez votre API à l’aide d’un navigateur Web.

**Pour tester votre API**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez votre API.

1. Notez l’URL d’appel de votre API.  
![\[Une fois que vous avez créé votre API, la console affiche l’URL d’appel de votre API.\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/getting-started-invoke-url.png)

1. Dans un navigateur Web, accédez à l’URL d’appel de votre API.

   L’URL complète doit ressembler à `https://abcdef123.execute-api.us-east-2.amazonaws.com`.

   Votre navigateur envoie une requête `GET` à l’API.

1. Vérifiez que la réponse de votre API est un message de bienvenue qui vous indique que votre application est en cours d’exécution sur Amazon ECS.

   Si le message de bienvenue s’affiche, vous avez créé avec succès un service Amazon ECS qui s’exécute dans un VPC Amazon et vous avez utilisé une API HTTP API Gateway avec un lien VPC pour accéder au service Amazon ECS.

## Étape 7 : nettoyer
<a name="http-api-private-integration-cleanup"></a>

Pour éviter des coûts inutiles, supprimez les ressources que vous avez créées dans le cadre de ce didacticiel. Les étapes suivantes suppriment votre lien VPC, votre CloudFormation stack et votre API HTTP.

**Pour supprimer une API HTTP**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Sur la **APIs**page, sélectionnez une API. Choisissez **Actions**, choisissez **Supprimer**, puis confirmez votre choix.

**Pour supprimer un lien VPC**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez **Lien VPC**.

1. Sélectionnez votre lien VPC, choisissez **Supprimer**, puis confirmez votre choix.

**Pour supprimer une CloudFormation pile**

1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Sélectionnez votre CloudFormation pile.

1. Choisissez **Supprimer**, puis confirmez votre choix.

## Prochaines étapes : Automatisez avec CloudFormation
<a name="http-api-private-integration-next-steps"></a>

Vous pouvez automatiser la création et le nettoyage de toutes les AWS ressources impliquées dans ce didacticiel. Pour un exemple complet de modèle CloudFormation , veuillez consulter [template.yaml](samples/private-integration-full-template.zip).