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 règle EventBridge planifiée pour les AWS Lambda fonctions
Vous pouvez configurer une règle de sorte qu’elle exécute une fonction AWS Lambda selon une planification. Ce didacticiel explique comment utiliser le AWS Management Console ou le AWS CLI pour créer la règle. Si vous souhaitez utiliser le AWS CLI mais que vous ne l'avez pas installé, consultez la section Installation, mise à jour et désinstallation de la AWS CLI version 2.
Pour les plannings, EventBridge ne fournit pas de précision de second niveau dans les expressions de planning. Le niveau de résolution maximal lors de l’utilisation d’une expression cron est d’une minute. En raison de la nature distribuée EventBridge des services cibles, un délai de plusieurs secondes peut s'écouler entre le moment où la règle planifiée est déclenchée et le moment où le service cible exécute la ressource cible.
Étapes :
Étape 1 : Créer une fonction Lambda
Créez une fonction Lambda pour enregistrer les événements planifiés.
Pour créer une fonction Lambda
Ouvrez la AWS Lambda console à l'adresse https://console.aws.amazon.com/lambda/
. -
Choisissez Créer une fonction.
-
Choisissez Créer à partir de zéro.
-
Saisissez un nom et une description pour la fonction Lambda. Par exemple, nommez la fonction
LogScheduledEvent
. -
Gardez les autres options comme valeurs par défaut et choisissez Créer une fonction.
-
Dans l’onglet Code de la page de fonction, double-cliquez sur index.js.
-
Remplacez le code existant par le code suivant.
'use strict'; exports.handler = (event, context, callback) => { console.log('LogScheduledEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
-
Choisissez Deploy (Déployer).
Étape 2 : Création d'une règle
Créez une règle pour exécuter la fonction Lambda que vous avez créée à l’étape 1 selon une planification.
Vous pouvez utiliser la console ou le AWS CLI pour créer la règle. Pour utiliser le AWS CLI, vous devez d'abord autoriser la règle à invoquer votre fonction Lambda. Vous pouvez ensuite créer la règle et ajouter la fonction Lambda comme cible.
Pour créer une règle (console)
Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/
. -
Dans le volet de navigation, choisissez Règles.
-
Choisissez Créer une règle.
-
Saisissez un nom et une description pour la règle.
Une règle ne peut pas avoir le même nom qu'une autre règle de la même région et sur le même bus d'événement.
-
Pour Event bus (Bus d'événement), sélectionnez le bus d'événement que vous souhaitez associer à cette règle. Si vous souhaitez que cette règle corresponde aux événements provenant de votre compte, sélectionnez Bus d’événements par défaut AWS . Lorsqu'un service AWS de votre compte émet un événement, il accède toujours au bus d'événement par défaut de votre compte.
-
Pour Rule type (Type de règle), choisissez Schedule (Planifier).
-
Choisissez Suivant.
-
Pour Modèle de planification, choisissez Un programme qui s’exécute à fréquence régulière, par exemple toutes les 10 minutes, entrez
5
, puis choisissez Minutes dans la liste déroulante. -
Choisissez Suivant.
-
Pour Types de cibles, choisissez service AWS .
-
Pour Sélectionner une cible, choisissez Fonction Lambda dans la liste déroulante.
-
Pour Fonction, sélectionnez la fonction Lambda que vous avez créée dans la section Étape 1 : Créer une fonction Lambda. Dans cet exemple, sélectionnez
LogScheduledEvent
. -
Choisissez Suivant.
-
Choisissez Suivant.
-
Consultez les détails de la règle et choisissez Create rule (Créer une règle).
Pour créer une règle (AWS CLI)
-
Pour créer une règle qui s’exécute selon une planification, utilisez la commande
put-rule
.aws events put-rule \ --name
my-scheduled-rule
\ --schedule-expression 'rate(5 minutes)'Lorsque cette règle s’exécute, elle crée un événement et l’envoie aux cibles. Voici un exemple d'événement.
{ "version": "0", "id": "53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2015-10-08T16:53:06Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule" ], "detail": {} }
-
Pour autoriser le principal du EventBridge service (
events.amazonaws.com
) à exécuter la règle, utilisez laadd-permission
commande.aws lambda add-permission \ --function-name
LogScheduledEvent
\ --statement-idmy-scheduled-event
\ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1
:123456789012
:rule/my-scheduled-rule
-
Créez le fichier
targets.json
contenant les éléments suivants.[ { "Id": "1", "Arn": "arn:aws:lambda:
us-east-1
:123456789012
:function:LogScheduledEvent
" } ] -
Pour ajouter la fonction Lambda que vous avez créée à l’étape 1 à la règle, utilisez la commande
put-targets
.aws events put-targets --rule
my-scheduled-rule
--targets file://targets.json
Étape 3 : Vérifier la règle
Après avoir terminé l’étape 2, attendez au moins cinq minutes avant de vérifier que la fonction Lambda a bien été invoquée.
Affichage de la sortie de la fonction Lambda
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le panneau de navigation, sélectionnez Logs (Journaux).
-
Sélectionnez le nom du groupe de journaux pour votre fonction Lambda (
/aws/lambda/
).function-name
-
Sélectionnez le nom du flux de journaux pour afficher les données fournies par la fonction concernant l'instance que vous avez lancée.
Étape 4 : Confirmer la bonne exécution
Si vous voyez l'événement Lambda dans les CloudWatch journaux, cela signifie que vous avez terminé ce didacticiel avec succès. Si l'événement ne figure pas dans vos CloudWatch journaux, commencez le dépannage en vérifiant que la règle a été créée avec succès et, si la règle semble correcte, vérifiez que le code de votre fonction Lambda est correct.
Étape 5 : Nettoyer vos ressources
Vous pouvez maintenant supprimer les ressources que vous avez créées pour ce didacticiel, sauf si vous souhaitez les conserver. En supprimant AWS les ressources que vous n'utilisez plus, vous évitez des frais inutiles sur votre AWS compte.
Pour supprimer la ou les EventBridge règles
-
Ouvrez la page Règles
de la EventBridge console. -
Sélectionnez la ou les règles que vous avez créées.
-
Sélectionnez Delete.
-
Sélectionnez Delete.
Pour supprimer la ou les fonctions Lambda
-
Ouvrez la page Functions
(Fonctions) de la console Lambda. -
Sélectionnez la ou les fonctions que vous avez créées.
-
Sélectionnez Actions, Supprimer.
-
Sélectionnez Supprimer.