Tutoriel : Création d'une API REST avec une AWS intégration - 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.

Tutoriel : Création d'une API REST avec une AWS intégration

Les deux rubriques Tutoriel : Création d'une REST API intégration avec un proxy Lambda et Tutoriel : Création d'RESTAPIune intégration Lambda sans proxy 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 prennent en charge des API dédiées pour 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, consultezDidacticiels et ateliers Amazon API Gateway.

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 Tutoriel : Création d'RESTAPIune intégration Lambda sans proxy. Si vous n'avez pas encore effectué cette procédure, nous vous conseillons de le faire en premier.

Prérequis

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

  1. Suivez les étapes de Configuration pour utiliser API Gateway.

  2. Créez une nouvelle API nommée MyDemoAPI. Pour de plus amples informations, veuillez consulter Tutoriel : créer un REST API avec une HTTP intégration sans proxy.

  3. Déployez l'API au moins une fois jusqu'à une étape nommée test. Pour plus d'informations, consultez Déployer l'API dans Choisissez un didacticiel AWS Lambda d'intégration.

  4. Suivez le reste des étapes dans Choisissez un didacticiel AWS Lambda d'intégration.

  5. 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. (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

Pour autoriser l’API à invoquer les actions Amazon SNS requises, vous devez avoir attaché les politiques IAM appropriées à 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 à l'adresse https://console.aws.amazon.com/iam/.

  2. Sélectionnez Roles.

  3. Sélectionnez Créer un rôle.

  4. 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.

  5. Choisissez Suivant, puis Suivant.

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

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

  8. Pour le rôle sélectionné, sélectionnez l'onglet Ajouter des autorisations.

  9. Choisissez Attacher des politiques dans la liste déroulante.

  10. Dans la barre de recherche, saisissez AmazonSNSReadOnlyAccess et choisissez Ajouter des autorisations.

    Note

    Ce didacticiel utilise une stratégie gérée pour plus de simplicité. Il est recommandé de créer votre propre stratégie IAM afin d'accorder les autorisations minimales requises.

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

Étape 2 : Créer la ressource

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.

  2. Choisissez votre API.

  3. Sélectionnez la racine de la ressource, /, représentée par une seule barre oblique (/), puis choisissez Créer une ressource.

  4. Maintenez Ressource proxy désactivée.

  5. Conservez Chemin de la ressource sous la forme /.

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

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

  8. Choisissez Créer une ressource.

Étape 3 : Créer la méthode GET

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.

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

  3. Pour Type d’intégration, sélectionnez AWS service.

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

  5. Pour AWS service, sélectionnez Amazon SNS.

  6. Laissez Sous-domaine AWS vide.

  7. Pour Méthode HTTP, sélectionnez GET.

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

  9. Pour Nom de l’action, saisissez ListTopics.

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

  11. Choisissez Créer une méthode.

Étape 4 : Spécification des paramètres et test de la méthode

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.

  2. 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éploiement de l'API

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).

  2. Pour Étape, sélectionnez Nouvelle étape.

  3. Sous Stage name (Nom de l'étape), entrez test.

  4. (Facultatif) Sous Description, entrez une description.

  5. Choisissez Deploy (Déployer).

Étape 6 : Test de l'API

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.

  2. 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
  3. Collez l’URL dans la zone d’adresse d’un nouvel onglet du navigateur.

  4. 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

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 les API 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/.

  2. Dans la zone Details, sélectionnez Roles.

  3. Sélectionnez APIGateway AWSProxyExecRole, puis choisissez Actions de rôle, Supprimer le rôle. A l'invite, sélectionnez Yes, Delete.

  4. Dans la zone Details, sélectionnez Policies.

  5. Sélectionnez APIGateway AWSProxyExecPolicy, puis choisissez Policy Actions, Supprimer. A 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 serviceTutoriel : Création REST API d'un proxy Amazon S3, consultezTutoriel : Création d'une API REST de calculatrice avec deux intégrations AWS de services et une intégration Lambda sans proxy, ouTutoriel : Création d'une API REST en tant que proxy Amazon Kinesis.