Mise en route avec API Gateway - Amazon API Gateway

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.

Mise en route avec API Gateway

Note

L'expérience repensée de la console API Gateway est désormais disponible. Pour un didacticiel sur la manière d'utiliser la console pour créer une API REST, consultez Bien démarrer avec la console d'API REST.

Dans le cadre de cet exercice de mise en route, vous créez une API sans serveur. Les API sans serveur vous permettent de vous concentrer sur vos applications, plutôt que de passer du temps à mettre en service et gérer des serveurs. Cet exercice prend moins de 20 minutes et peut être réalisé avec AWSl'offre gratuite.

Vous commencez par créer une fonction Lambda à l'aide de la console AWS Lambda. Ensuite, vous créez une API HTTP à l'aide de la console API Gateway. Ensuite, vous appelez votre API.

Note

Cet exercice utilise une API HTTP pour plus de simplicité. API Gateway prend également en charge les API REST, qui incluent davantage de fonctions. Pour en savoir plus, veuillez consulter la section Choix entre les API HTTP et les API REST.

Lorsque vous appelez votre API HTTP, API Gateway achemine la requête vers votre fonction Lambda. Lambda exécute la fonction Lambda et renvoie une réponse à API Gateway. API Gateway vous renvoie ensuite une réponse.


      Vue d'ensemble architecturale de l'API que vous créez dans ce guide de démarrage. Les clients utilisent une API HTTP API Gateway pour appeler une fonction Lambda. API Gateway renvoie la réponse de la fonction Lambda aux clients.

Pour terminer cet exercice, vous avez besoin d'un compte AWS et d'un utilisateur AWS Identity and Access Management avec accès à la console. Pour de plus amples informations, veuillez consulter Prérequis pour démarrer avec API Gateway.

Étape 1 : Créer une fonction Lambda

Vous utilisez une fonction Lambda pour le backend de votre API. Lambda exécute le code uniquement lorsque cela est nécessaire et se met à l'échelle automatiquement, qu'il s'agisse de quelques requêtes par jour ou de milliers de requêtes par seconde.

Pour cet exemple, vous utilisez la fonction Node.js par défaut de la console Lambda.

Pour créer une fonction Lambda
  1. Connectez-vous à la console Lambda à l'adresse https://console.aws.amazon.com/lambda/.

  2. Choisissez Créer une fonction.

  3. Sous Function name (Nom de la fonction), saisissez my-function.

  4. Choisissez Créer une fonction.

L'exemple de fonction renvoie la réponse 200 aux clients, ainsi que le texte Hello from Lambda!.

Vous pouvez modifier votre fonction Lambda, tant que la réponse de la fonction correspond au format requis par API Gateway.

Le code de la fonction Lambda par défaut devrait ressembler à ce qui suit :

export const handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };

Étape 2 : Créer une API HTTP

Ensuite, vous créez une API HTTP. API Gateway prend également en charge les API REST et les API WebSocket, mais une API HTTP est le meilleur choix pour cet exercice. Les API REST prennent en charge davantage de fonctions que les API HTTP, mais nous n'avons pas besoin de ces fonctions pour cet exercice. Les API HTTP sont conçues avec un minimum de fonctions afin de pouvoir être proposées à un prix inférieur. Les API WebSocket maintiennent des connexions persistantes avec les clients pour une communication en duplex intégral, mais nous n'avons pas besoin de cette fonctionnalité dans cet exemple.

L'API HTTP fournit un point de terminaison HTTP pour votre fonction Lambda. API Gateway achemine les requêtes vers votre fonction Lambda, puis renvoie la réponse de la fonction aux clients.

Pour créer une API HTTP
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Effectuez l'une des actions suivantes :

    • Pour créer votre première API, sous HTTP API (API HTTP), choisissez Build (Génération).

    • Si vous avez déjà créé une API, choisissez Create API (Créer une API), puis Build (Génération) sous HTTP API (API HTTP).

  3. Sous Integrations (Intégrations), choisissez Add integration (Ajouter une intégration).

  4. Choisissez Lambda.

  5. Sous Lambda function (Fonction Lambda), saisissez my-function.

  6. Sous API name (Nom de l'API), saisissez my-http-api.

  7. Choisissez Next (Suivant).

  8. Consultez le routage créé par API Gateway pour vous, puis choisissez Next (Suivant).

  9. Consultez l'étape créée par API Gateway pour vous, puis choisissez Next (Suivant).

  10. Sélectionnez Créer.

Vous avez maintenant créé une API HTTP avec une intégration Lambda, prête à recevoir des demandes de clients.

Étape 3 : Tester votre API

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.

  2. Choisissez votre API.

  3. 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.
  4. Copiez l'URL d'appel de votre API et saisissez-la dans un navigateur Web. Ajoutez le nom de votre fonction Lambda à votre URL d'appel pour appeler votre fonction Lambda. Par défaut, la console API Gateway crée un routage portant le même nom que votre fonction Lambda, à savoi, my-function.

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

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

  5. Vérifiez la réponse de votre API. Vous devriez voir le texte "Hello from Lambda!" dans votre navigateur.

(Facultatif) Étape 4 : Nettoyer

Pour éviter des coûts inutiles, supprimez les ressources que vous avez créées dans le cadre de cet exercice de démarrage. Les étapes suivantes suppriment votre API HTTP, votre fonction Lambda, ainsi que les ressources associées.

Pour supprimer une API HTTP
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sur la page APIs (API) , sélectionnez une API. Choisissez Actions, puis Delete (Supprimer).

  3. Sélectionnez Delete.

Pour supprimer une fonction Lambda
  1. Connectez-vous à la console Lambda à l'adresse https://console.aws.amazon.com/lambda/.

  2. Sur la page Functions (Fonctions), sélectionnez une fonction. Choisissez Actions, puis Delete (Supprimer).

  3. Sélectionnez Delete.

Pour supprimer le groupe de journaux d'une fonction Lambda
  1. Dans la console Amazon CloudWatch, ouvrez la page Groupes de journaux.

  2. Sur la page Log groups (Groupes de journaux), sélectionnez le groupe de journaux de la fonction (/aws/lambda/my-function). Choisissez Actions, puis Supprimer le groupe de journaux.

  3. Sélectionnez Delete.

Pour supprimer le rôle d'exécution d'une fonction Lambda
  1. Dans la console AWS Identity and Access Management, ouvrez la page Rôles.

  2. Sélectionnez le rôle de la fonction, par exempl, my-function-31exxmpl.

  3. Choisissez Supprimer le rôle.

  4. Choisissez Oui, supprimer.

Vous pouvez automatiser la création et le nettoyage des ressources AWS en utilisant AWS CloudFormation ou AWS SAM. Pour des exemples de modèles AWS CloudFormation, veuillez consulter exemples de modèles AWS CloudFormation.

Étapes suivantes

Pour cet exemple, vous avez utilisé la AWS Management Console pour créer une API HTTP simple. L'API HTTP appelle une fonction Lambda et renvoie une réponse aux clients.

Vous trouverez ci-dessous de prochaines étapes à suivre si vous souhaitez continuer à travailler avec API Gateway.

Pour obtenir de l'aide sur Amazon API Gateway auprès de la communauté, veuillez consulter le forum de discussion API Gateway. Lorsque vous entrez dans ce forum, AWS peut vous demander de vous connecter.

Pour obtenir de l'aide concernant API Gateway directement d'AWS, veuillez consulter les options de support sur la page Support AWS.

Consultez aussi nos questions fréquentes (FAQ) ou contactez-nous directement.