Comment automatiser les tâches dans mon compte AWS avec Lambda ?

Dernière mise à jour : 24/03/2021

Je souhaite utiliser AWS Lambda pour automatiser des tâches dans mon compte AWS. Comment procéder ?

Brève description

Il existe plusieurs services AWS que vous pouvez intégrer à Lambda pour appeler une fonction selon un calendrier ou en réponse à certains événements. Pour plus d'informations sur les services AWS que vous pouvez intégrer à Lambda, consultez Utilisation de Lambda avec d'autres services.

Cet article présente des exemples de deux des services AWS les plus courants qui utilisent Lambda pour automatiser les tâches :

Pour plus d'exemples, consultez Utilisation de Lambda avec des événements planifiés et Utilisation de Lambda avec Amazon S3.

Résolution

Important : EventBridge et Amazon S3 mettent automatiquement à jour le rôle d'exécution de votre fonction Lambda, notamment en ajoutant l'accès requis à l'aide de stratégies basées sur les ressources. Tous les services AWS ne le font pas. Si vous intégrez Lambda à un autre service AWS, assurez-vous d'ajouter manuellement les autorisations requises.

Créer une fonction Lambda qui enregistre les entrées dans vos Amazon CloudWatch Logs

Remarque : La fonction que vous créez sera la cible des événements que vous configurez. Remplacez l'exemple de code de fonction par votre propre code pour la tâche que vous souhaitez automatiser dans votre cas d'utilisation.

1.    Dans la console Lambda, choisissez Créer une fonction. La page « Create function » (Créer une fonction) s'ouvre et propose par défaut l'option « Author from scratch » (Créer à partir de zéro).

2.    Sous Informations de base, saisissez ce qui suit :
Pour Function Name, (Nom de la fonction), saisissez un nom pour votre fonction.
Dans le champ Exécution, choisissez Node.js 14.x.

3.    Sous Autorisations, choisissez Modifier le rôle d'exécution par défaut. Ensuite, effectuez l'une des actions suivantes :
Si vous utilisez Lambda pour la première fois, choisissez « Create a new role with basic Lambda permissions » (Créer un nouveau rôle avec les autorisations Lambda de base).
Si vous avez déjà créé un rôle d'exécution Lambda que vous souhaitez utiliser, choisissez « Use an existing role » (Utiliser un rôle existant).
Si vous souhaitez créer un rôle d'exécution à l'aide d'un modèle de stratégie gérée AWS choisissez « Create a new role from AWS policy templates » (Créer un nouveau rôle à partir des modèles de stratégie AWS). Ensuite, saisissez un nom et choisissez un modèle de stratégie.

4.    Sélectionnez Créer une fonction.

5.    Sur le volet Configuration, sous Code de fonction , ouvrez le fichier index.js. Ensuite, copiez et collez l'exemple de code de fonction suivant dans le volet de l'éditeur :

'use strict';
exports.handler = (event, context, callback) => {
    console.log('LogScheduledEvent');
    console.log('Received event:', JSON.stringify(event, null, 2));
    callback(null, 'Finished');
};

6.    Choisissez Deploy (Déployer).

Pour plus d'informations, consultez Créer une fonction Lambda avec la console. Vous avez aussi la possibilité de créer une fonction Lambda en créant et téléchargeant votre propre package de déploiement ou en créant et téléchargeant une image de conteneur.

(Pour EventBridge) Créez des règles EventBridge qui se déclenchent suivant une planification ou en réponse à un événement

Événements planifiés

Pour automatiser les tâches avec une durée spécifique et sans aucune entrée, suivez les instructions de Création d'une règle EventBridge qui se déclenche selon un calendrier. Assurez-vous de spécifier une planification pour le moment où vous souhaitez que votre tâche automatisée s'exécute. Ajoutez la fonction Lambda que vous avez créée comme cible à déclencher en réponse à l'événement.

Remarque : Une fois que vous avez créé la règle, votre fonction Lambda est automatiquement appelée avec la durée que vous avez définie. Si vous avez utilisé l'exemple de code de fonction, un flux de journaux provenant de Lambda est renseigné dans CloudWatch comme prévu.

Pour un exemple, consultez Programmer les fonctions Lambda en utilisant EventBridge.

Pour les événements de service

Pour automatiser les tâches en réponse à un événement généré par un service AWS, suivez les instructions de la section Création d'une règle pour un service AWS.

Pour cet exemple de configuration, utilisez les configurations suivantes lorsque vous créez la règle :
Pour Nom du service, sélectionnez EC2.
Pour Type d'événement, choisissez Notification des modifications d'état de l'instance EC2.
Ajoutez la fonction Lambda que vous avez créée comme cible.

Remarque : Une fois que vous avez créé la règle, votre fonction Lambda est appelée pour chaque occurrence du modèle d'événement que vous avez défini.

Pour plus d'informations, consultez Modèles d'événements dans EventBridge et Exemples d'événements EventBridge des services AWS pris en charge.

Pour tester la règle EventBridge

Pour tester la règle EventBridge, modifiez l'état d'une instance Amazon Elastic Compute Cloud (Amazon EC2) en arrêtant ou en démarrant l'instance. Lambda enverra un flux de journaux à CloudWatch.

Pour plus d'informations sur le lancement d'une instance EC2, consultez Lancer une instance.

Remarque : l'utilisation d'une instance EC2 peut entraîner des frais sur votre compte AWS. Si vous créez une instance uniquement pour cet exemple, veillez à mettre fin à l'instance quand vous aurez terminé.

Pour plus d'informations, consultez Mise en route avec Amazon EventBridge.

(Pour Amazon S3) Configurer une Notification d'Événement S3 pour déclencher votre fonction Lambda

Pour utiliser les Notifications d'Événement Amazon S3 pour déclencher votre fonction Lambda, suivez les instructions de la rubrique Activation et configuration des notifications d'événement.

Pour cet exemple de configuration, utilisez les configurations suivantes lorsque vous créez la Notification d'Événement S3 :
Pour Types d'événements, sélectionnez la case Tous les objets créent des événements.
Pour Destination, sélectionnez Fonction Lambda.
Dans la liste déroulante de la fonction Lambda, sélectionnez la fonction Lambda que vous avez créée précédemment.

Pour plus d'informations sur la création d'un compartiment S3, consultez Créez votre premier compartiment S3.

Tester la Notification d'Événement Amazon S3

Pour tester la configuration, téléchargez un objet dans le compartiment S3. Si vous avez configuré un filtre « Prefix » (Préfixe) ou « Suffix » (Suffixe), assurez-vous que l'objet possède le bon préfixe ou le bon suffixe.

Une fois le chargement terminé, votre fonction Lambda lance l'appel. Si vous avez utilisé l'exemple de code de fonction, un flux de journaux provenant de Lambda est renseigné dans CloudWatch. Ces CloudWatch Logs contiennent les métadonnées de l'objet événement à l'instar du nom du compartiment S3 et du nom de l'objet.

Pour un exemple, consultez Utilisation de Lambda avec Amazon S3.


Avez-vous trouvé cet article utile ?


Besoin d'aide pour une question technique ou de facturation ?