

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.

# Tutoriel : Création d'une API REST avec une AWS intégration
<a name="getting-started-aws-proxy"></a>

 Les deux rubriques [Didacticiel : création d’une API REST avec une intégration de proxy Lambda](api-gateway-create-api-as-simple-proxy-for-lambda.md) et [Didacticiel : création d’une API REST avec une intégration Lambda sans proxy](getting-started-lambda-non-proxy-integration.md) décrivent comment créer une API Gateway pour exposer la fonction intégrée Lambda. En outre, vous pouvez créer une API API Gateway pour exposer d'autres AWS services, tels qu'Amazon SNS, Amazon S3, Amazon Kinesis, etc. AWS Lambda Ceci est rendu possible par l’intégration `AWS`. L’intégration Lambda ou l’intégration proxy Lambda est un cas particulier, où l’invocation de la fonction Lambda est exposée via l’API Gateway. 

 Tous les AWS services de support sont dédiés APIs à exposer leurs fonctionnalités. Cependant, les protocoles d’application ou les interfaces de programmation sont susceptibles de différer d’un service à un autre. Une API API Gateway `AWS` intégrée présente l'avantage de fournir un protocole d'application cohérent permettant à votre client d'accéder à différents AWS services. 

 Dans cette procédure, nous avons créé une API pour exposer Amazon SNS. Pour d'autres exemples d'intégration d'une API à d'autres AWS services, consultez[Didacticiels et ateliers Amazon API Gateway](api-gateway-tutorials.md). 

 Contrairement à l’intégration de proxy Lambda, il n’y a pas d’intégration de proxy correspondante pour d’autres services AWS . Ainsi, une méthode d'API est intégrée à une seule AWS action. Pour plus de flexibilité, vous pouvez configurer une intégration de proxy Lambda, similaire à l’intégration de proxy. La fonction Lambda analyse et traite ensuite les demandes d'autres actions. AWS 

 API Gateway ne fait pas une nouvelle tentative lorsque le délai est dépassé pour le point de terminaison. L’appelant de l’API doit implémenter une logique de nouvelle tentative pour gérer les dépassements de délai du point de terminaison. 

 Cette procédure repose sur les instructions et les concepts décrits dans [Didacticiel : création d’une API REST avec une intégration Lambda sans proxy](getting-started-lambda-non-proxy-integration.md). Si vous n’avez pas encore effectué cette procédure, nous vous conseillons de le faire en premier. 



**Topics**
+ [Conditions préalables](#getting-started-aws-proxy-prerequisites)
+ [Étape 1 : créer le rôle d'exécution du proxy de AWS service](#getting-started-aws-proxy-add-roles)
+ [Étape 2 : créer la ressource](#getting-started-aws-proxy-add-resources)
+ [Étape 3 : créer la méthode GET](#getting-started-aws-proxy-add-methods)
+ [Étape 4 : spécifier les paramètres et tester la méthode](#getting-started-aws-proxy-set-methods)
+ [Étape 5 : déployer l’API](#getting-started-aws-proxy-deploy)
+ [Étape 6 : tester l’API](#getting-started-aws-proxy-test)
+ [Étape 7 : nettoyer](#getting-started-aws-proxy-clean-up)

## Conditions préalables
<a name="getting-started-aws-proxy-prerequisites"></a>

Avant de commencer cette procédure, exécutez les étapes suivantes :

1. Suivez les étapes de [Configuration d’API Gateway avant son utilisation](setting-up.md).

1.  Créez une nouvelle API nommée `MyDemoAPI`. Pour de plus amples informations, veuillez consulter [Didacticiel : création d’une API REST avec une intégration HTTP sans proxy](api-gateway-create-api-step-by-step.md). 

1. Déployez l’API au moins une fois dans une étape nommée `test`. Pour plus d’informations, consultez [Déployer l’API](getting-started-lambda-non-proxy-integration.md#getting-started-deploy-api) dans [Choisissez un didacticiel AWS Lambda d'intégration](getting-started-with-lambda-integration.md).

1. Suivez le reste des étapes dans [Choisissez un didacticiel AWS Lambda d'intégration](getting-started-with-lambda-integration.md).

1. Créez au moins une rubrique dans Amazon Simple Notification Service (Amazon SNS). Vous utiliserez l'API déployée pour obtenir une liste des sujets associés à votre AWS compte sur Amazon SNS. Pour apprendre à créer une rubrique dans Amazon SNS, consultez [Création d’une rubrique](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html). (Vous n’avez pas besoin de copier l’ARN de la rubrique mentionné à l’étape 5.)

## Étape 1 : créer le rôle d'exécution du proxy de AWS service
<a name="getting-started-aws-proxy-add-roles"></a>

 Pour autoriser l’API à invoquer les actions Amazon SNS requises, vous devez avoir attaché les politiques IAM appropriées à un rôle IAM. Au cours de cette étape, vous allez créer un rôle IAM.

**Pour créer le rôle d'exécution du proxy de AWS service**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Sélectionnez **Roles**.

1. Choisissez **Créer un rôle**.

1.  Choisissez le **AWS service** sous **Sélectionner le type d'entité de confiance**, puis sélectionnez **API Gateway** et sélectionnez **Allows API Gateway to push CloudWatch logs vers Logs**.

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

1. Pour **Nom du rôle**, saisissez **APIGatewaySNSProxyPolicy**, puis choisissez **Créer un rôle**.

1. Dans la liste **Roles**, choisissez le rôle que vous venez de créer. Vous devrez peut-être faire défiler la page ou utiliser la barre de recherche pour rechercher le rôle.

1. Pour le rôle sélectionné, sélectionnez l’onglet **Ajouter des autorisations**.

1. Choisissez **Attacher des politiques** dans la liste déroulante.

1. Dans la barre de recherche, saisissez **AmazonSNSReadOnlyAccess** et choisissez **Ajouter des autorisations**. 
**Note**  
Ce didacticiel utilise une politique gérée pour plus de simplicité. Il est recommandé de créer votre propre politique IAM afin d’accorder les autorisations minimales requises. 

1. Notez l’**ARN du rôle** nouvellement créé. Vous l’utiliserez ultérieurement.

## Étape 2 : créer la ressource
<a name="getting-started-aws-proxy-add-resources"></a>

Au cours de cette étape, vous créez une ressource qui permet au proxy de AWS service d'interagir avec le AWS service.

**Pour créer la ressource**

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. Sélectionnez la racine de la ressource, **/**, représentée par une seule barre oblique (**/**), puis choisissez **Créer une ressource**.

1. Maintenez **Ressource proxy** désactivée.

1. Conservez **Chemin de la ressource** sous la forme `/`.

1. Sous **Resource Name (Nom de la ressource)**, entrez **mydemoawsproxy**.

1. Maintenez **CORS (Partage des ressources entre origines multiples)** désactivé.

1. Choisissez **Créer une ressource**.

## Étape 3 : créer la méthode GET
<a name="getting-started-aws-proxy-add-methods"></a>

Au cours de cette étape, vous créez une méthode GET qui permet au proxy de AWS service d'interagir avec le AWS service.

**Pour créer la méthode `GET`**

1. Sélectionnez la ressource **/mydemoawsproxy**, puis choisissez **Créer une méthode**.

1. Pour le type de méthode, sélectionnez **GET**.

1. Pour **Type d’intégration**, sélectionnez **Service AWS**.

1. Pour **Région AWS**, sélectionnez l' Région AWS endroit où vous avez créé votre rubrique Amazon SNS.

1. Pour **Service AWS**, sélectionnez **Amazon SNS**.

1. Laissez **Sous-domaine AWS ** vide.

1. Pour **Méthode HTTP**, sélectionnez **GET**.

1. Pour **Type d’action**, sélectionnez **Utiliser un nom d’action**.

1. Pour **Nom de l’action**, saisissez **ListTopics**.

1. Pour **Rôle d’exécution**, saisissez l’ARN de rôle pour **APIGatewaySNSProxyPolicy**.

1. Choisissez **Créer une méthode**.

## Étape 4 : spécifier les paramètres et tester la méthode
<a name="getting-started-aws-proxy-set-methods"></a>

Vous pouvez maintenant tester votre méthode `GET` pour vérifier qu’elle a été correctement configurée pour répertorier vos rubriques Amazon SNS.

**Pour tester la méthode `GET`**

1. Choisissez l’onglet **Test**. Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.

1. Sélectionnez **Tester)**.

   Le résultat affiche une réponse semblable à ce qui suit :

   ```
   {
     "ListTopicsResponse": {
       "ListTopicsResult": {
         "NextToken": null,
         "Topics": [
           {
             "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1"
           },
           {
             "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2"
           },
           ...
           {
             "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N"
           }
         ]
       },
       "ResponseMetadata": {
         "RequestId": "abc1de23-45fa-6789-b0c1-d2e345fa6b78"
       }
     }
   }
   ```

## Étape 5 : déployer l’API
<a name="getting-started-aws-proxy-deploy"></a>

Dans cette étape, vous allez déployer l’API afin de pouvoir l’appeler en dehors de la console API Gateway.

**Pour déployer l’API**

1. Sélectionnez **Deploy API (Déployer une API)**.

1. Pour **Étape**, sélectionnez **Nouvelle étape**.

1. Sous **Stage name (Nom de l’étape)**, entrez **test**.

1. (Facultatif) Sous **Description**, entrez une description.

1. Choisissez **Deploy (Déployer)**.

## Étape 6 : tester l’API
<a name="getting-started-aws-proxy-test"></a>

Au cours de cette étape, vous sortez de la console API Gateway et vous utilisez votre proxy de AWS service pour interagir avec le service Amazon SNS.

1. Dans le volet de navigation principal, choisissez **Étape**.

1. Sous **Détails de l’étape**, choisissez l’icône de copie pour copier l’URL d’invocation de votre API.

   Elle doit ressembler à ce qui suit :

   ```
   https://my-api-id.execute-api.region-id.amazonaws.com/test
   ```

1. Collez l’URL dans la zone d’adresse d’un nouvel onglet du navigateur.

1. Ajoutez `/mydemoawsproxy` afin que l’URL ressemble à ce qui suit :

   ```
   https://my-api-id.execute-api.region-id.amazonaws.com/test/mydemoawsproxy
   ```

   Accédez à l’URL. Des informations similaires à celles qui suivent doivent s’afficher :

   ```
   {"ListTopicsResponse":{"ListTopicsResult":{"NextToken": null,"Topics":[{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1"},{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2"},...{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N}]},"ResponseMetadata":{"RequestId":"abc1de23-45fa-6789-b0c1-d2e345fa6b78}}}
   ```

## Étape 7 : nettoyer
<a name="getting-started-aws-proxy-clean-up"></a>

Vous pouvez supprimer les ressources IAM dont le proxy de AWS service a besoin pour fonctionner.

**Avertissement**  
Si vous supprimez une ressource IAM sur laquelle repose un proxy de AWS service, ce proxy de AWS service et tous APIs ceux qui en dépendent ne fonctionneront plus. La suppression d’une ressource IAM ne peut pas être annulée. Si vous souhaitez réutiliser cette ressource IAM, vous devez la recréer.

**Pour supprimer les ressources IAM associées**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans la zone **Details**, sélectionnez **Roles**.

1. Sélectionnez **APIGatewayAWSProxyExecRole**, puis **Role Actions (Actions du rôle)**, et **Delete Role (Supprimer le rôle)**. À l’invite, sélectionnez **Yes, Delete**.

1. Dans la zone **Details**, sélectionnez **Policies**.

1. Sélectionnez **APIGatewayAWSProxyExecPolicy**, puis choisissez **Policy Actions (Actions de stratégie)** et **Delete (Supprimer)**. À l’invite, sélectionnez **Delete (Supprimer)**.

 Vous avez terminé cette procédure. Pour des discussions plus détaillées sur la création d'une API en tant que proxy de AWS service[Didacticiel : création d’une API REST en tant que proxy Amazon S3](integrating-api-with-aws-services-s3.md), consultez[Tutoriel : Création d'une API REST de calculatrice avec deux intégrations AWS de services et une intégration Lambda sans proxy](integrating-api-with-aws-services-lambda.md), ou[Didacticiel : création d’une API REST en tant que proxy Amazon Kinesis](integrating-api-with-aws-services-kinesis.md). 