Agence web » Actualités du digital » Comment planifier des fonctions AWS Lambda avec des événements CloudWatch

Comment planifier des fonctions AWS Lambda avec des événements CloudWatch

comment-automatiser-la-creation-de-machines-virtuelles-aws-a-partir-6689232

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 de la 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 = (event, context, callback) => {
  console.log('LogScheduledEvent');
  console.log('Received event:', JSON.stringify(event, null, 2));
  callback(null, 'Finished');
};

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

comment-planifier-des-fonctions-aws-lambda-avec-des-evenements-cloudwatch-5047176

Rendez-vous sur la console de gestion CloudWatch pour créer une nouvelle règle, sous Événements> Règles dans la barre latérale.

1595340358_492_comment-planifier-des-fonctions-aws-lambda-avec-des-evenements-cloudwatch-3700012

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 de cron ou utiliser cet outil en ligne pour vous aider avec la syntaxe, mais le format général est:

minute hour day month weekday

1595340359_369_comment-planifier-des-fonctions-aws-lambda-avec-des-evenements-cloudwatch-7080344

Pour la cible, ajoutez une nouvelle cible et choisissez "Fonction Lambda". Sélectionnez le nom de la fonction que vous souhaitez exécuter.

1595340359_683_comment-planifier-des-fonctions-aws-lambda-avec-des-evenements-cloudwatch-5502037

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.

★★★★★