Si vous cherchez à exécuter du code régulièrement, comme une tâche cron, vous pouvez utiliser CloudWatch Events d'AWS pour exécuter automatiquement des fonctions Lambda sans serveur à des intervalles de temps fixes, sans utiliser de serveurs réels.
Qu'est-ce que CloudWatch Events?
CloudWatch est un service d'AWS qui surveille et répond aux changements dans votre infrastructure cloud. Il est le plus couramment utilisé pour la journalisation et la surveillance, mais il agit plus généralement comme le ciment qui relie de nombreuses applications.
L'une de ces fonctionnalités est CloudWatch Events, un service qui cartographie essentiellement la cause à effet. Il existe un tas d'actions différentes qui peuvent déclencher des événements, comme l'interruption d'instance ponctuelle pour EC2, les opérations au niveau du compartiment et de l'objet pour S3, etc. Ensuite, il peut déclencher d'autres actions, comme l'exécution d'une fonction lambda, la publication d'une file d'attente SNS, ou plusieurs d'autres actions.
L'astuce, dans ce cas, est que l'événement n'a pas à être déclenché par quelque chose. Il existe une autre option pour exécuter des événements périodiquement, soit selon un intervalle de temps fixe comme toutes les cinq minutes, soit en utilisant la syntaxe cron pour définir une période spécifique. Vous pouvez lier cet événement automatique à la fonction Lambda pour qu'il s'exécute automatiquement.
Configuration d'une fonction récurrente
Vous aurez bien sûr besoin d’une fonction que vous voudrez exécuter. Vous pouvez les créer à partir du Console de gestion Lambda. Si vous souhaitez simplement tester une fonction Hello World avec CloudWatch Events, vous devrez consigner l'événement pour enregistrer une sortie.
'use strict'; exports.handler = (événement, contexte, rappel) => { console.log ('LogScheduledEvent'); console.log ('Événement reçu:', JSON.stringify (événement, null, 2)); callback (null, 'Terminé'); };
Configurez la fonction et testez-la avec les outils intégrés, et affichez les journaux et les appels récents sous l'onglet «Surveillance».
Dirigez-vous vers le Console de gestion CloudWatch pour créer une nouvelle règle, sous Événements> Règles dans la barre latérale.
Pour la source d'événement, passez de «Event Pattern» à «Schedule» pour configurer des événements automatiques. Vous pouvez utiliser le taux fixe ou utiliser la syntaxe cron pour spécifier une heure plus précise. Vous pouvez lire notre guide pour cron ou utiliser ceci outil en ligne pour vous aider avec la syntaxe, mais le format général est:
minute heure jour mois jour de la semaine
Pour la cible, ajoutez une nouvelle cible et choisissez "Fonction Lambda". Sélectionnez le nom de la fonction que vous souhaitez exécuter.
Cliquez sur «Configurer les détails», donnez-lui un nom et créez la règle. Votre fonction Lambda doit commencer à s'exécuter et vous pouvez afficher les journaux correspondants à partir de l'onglet de surveillance de Lambda ou des journaux CloudWatch.