Utilisation de AWS Lambda avec d'autres services - AWS Lambda

Utilisation de AWS Lambda avec d'autres services

AWS Lambda s'intègre à d'autres services AWS pour appeler des fonctions. Vous pouvez configurer les déclencheurs pour appeler une fonction en réponse aux événements du cycle de vie des ressources, répondre aux demandes HTTP entrantes, consommer les événements d'une file d'attente ou s'exécuter selon une planification.

Chaque service qui s'intègre à Lambda envoie des données à votre fonction dans JSON en tant qu'événement. La structure du document d'événement est différente pour chaque type d'événement, et contient des données relatives à la ressource ou à la demande qui a déclenché la fonction. Les exécutions de Lambda convertissent l'événement en un objet et le transmettent à votre fonction.

L'exemple suivant illustre un événement test à partir d'une Equilibreur de charge d'application qui représente une demande GET pour /lambda?query=1234ABCD.

Exemple événement d'une Equilibreur de charge d'application

{ "requestContext": { "elb": { "targetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/lambda-279XGJDqGZ5rsrHC2Fjr/49e9d65c45c6791a" } }, "httpMethod": "GET", "path": "/lambda", "queryStringParameters": { "query": "1234ABCD" }, "headers": { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "accept-encoding": "gzip", "accept-language": "en-US,en;q=0.9", "connection": "keep-alive", "host": "lambda-alb-123578498.us-east-2.elb.amazonaws.com", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36", "x-amzn-trace-id": "Root=1-5c536348-3d683b8b04734faae651f476", "x-forwarded-for": "72.12.164.125", "x-forwarded-port": "80", "x-forwarded-proto": "http", "x-imforwards": "20" }, "body": "", "isBase64Encoded": false }
Note

L'exécution de Lambda convertit le document d'événement en objet et le transmet à votre gestionnaire de fonctions. Pour les langages compilés, Lambda fournit des définitions pour les types d'événements dans une bibliothèque. Pour plus d'informations, consultez les rubriques suivantes.

Pour les services qui génèrent une file d'attente ou un flux de données, vous créez un mappage de sources d'événements dans Lambda et accordez à Lambda l'autorisation d'accéder à l'autre service dans le rôle d'exécution. Lambda lit les données à partir de l'autre service, crée un événement et appelle votre fonction.

Les autres services appellent votre fonction directement. Vous accordez à l'autre service l'autorisation dans la stratégie de la fonction basée sur les ressources et configurez l'autre service pour générer des événements et appeler votre fonction. Selon le service, l'appel peut être synchrone ou asynchrone. Pour un appel synchrone, l'autre service attend la réponse de votre fonction et peut réessayer en cas d'erreurs.

Pour l'appel asynchrone, Lambda place l'événement dans une file d'attente avant de le transmettre à votre fonction. L'autre service obtient une réponse de réussite dès que l'événement est mis en file d'attente et n'est pas conscient de ce qui se passe par la suite. Si une erreur se produit, Lambda gère les nouvelles tentatives et peut envoyer les événements ayant échoué vers une destination que vous configurez.

En outre, certains services s'intègrent à Lambda de différentes façons, lesquelles n'impliquent pas l'appel de fonctions.

Services qui s'intègre à Lambda par d'autres façons

Consultez les rubriques de cette section pour plus de détails sur chaque service, ainsi que des exemples d'événements que vous pouvez utiliser pour tester votre fonction.