Bienvenue au Jour 5 des 12 Jours de DigitalOcean ! Hier, vous avez configuré votre Service de Rappel d’Anniversaire pour qu’il fonctionne sur DigitalOcean Functions, ce qui signifie qu’il est maintenant sans serveur et prêt pour le cloud. 🎉 Aujourd’hui, vous allez aller un peu plus loin en l’automatisant pour qu’il fonctionne selon son propre emploi du temps—aucune intervention manuelle requise.
À la fin de ce guide, votre service (ou toute autre fonction sur laquelle vous travaillez) fonctionnera automatiquement à une heure fixe chaque jour. Cela signifie qu’il n’est plus nécessaire de se souvenir de le déclencher soi-même—cela fonctionne tout simplement.
Pourquoi Automatiser ?
Déployer votre fonction dans le cloud a été une grande victoire hier, mais devoir l’exécuter manuellement va à l’encontre du but de l’automatisation. L’accent d’aujourd’hui est mis sur la planification du service pour qu’il fonctionne automatiquement—comme une horloge—afin que vous puissiez le régler et l’oublier. DigitalOcean Functions dispose d’une planification intégrée utilisant des Déclencheurs pour ce but précis, et vous avez deux façons de le configurer.
🚀 Ce que vous apprendrez
À la fin de la journée, vous saurez comment :
- Configurer un déclencheur quotidien pour exécuter votre fonction automatiquement.
- Apprendre deux façons de le faire : via le panneau de contrôle DigitalOcean ou avec le
doctl
CLI etproject.yml
. - Tester la configuration pour s’assurer qu’elle fonctionne.
🛠 Ce dont vous aurez besoin
Avant de commencer, assurez-vous d’avoir ce qui suit :
- Une fonction déjà déployée sur DigitalOcean (par exemple, le service de rappel d’anniversaire de Jour 4 : Création d’un service de rappel d’anniversaire) à automatiser avec des déclencheurs.
- Si vous utilisez le
doctl
CLI, vous aurez besoin du fichierproject.yml
pour votre fonction. Vous pouvez consulter Jour 4 pour des instructions sur l’installation et la configuration dudoctl
CLI, ainsi que la création du fichierproject.yml
.
🧑🍳 Recette pour le Jour 5 : Automatisation des Fonctions avec des Déclencheurs
Étape 1 : Configurer un Déclencheur pour Votre Fonction
DigitalOcean vous offre deux options pour configurer des déclencheurs :
- Option 1 : Utilisez le Panneau de Contrôle pour une configuration rapide et facile.
- Option 2 : Utilisez le
doctl
CLI pour un contrôle plus robuste et programmatique.
Avertissement: N’oubliez pas que les déclencheurs créés dans le Panneau de configuration sont perdus si vous redéployez la fonction en utilisant l’interface de ligne de commande. Si vous devez redéployer souvent, utilisez l’Option 2 pour ajouter directement des déclencheurs au fichier project.yml
.
Option 1 : Utiliser le Panneau de configuration pour Créer un Déclencheur
La manière la plus simple de configurer un déclencheur est via le Panneau de configuration de DigitalOcean. C’est rapide, ne nécessite aucun paramétrage, et est idéal pour des configurations ponctuelles simples.
- Rendez-vous sur la page principale des Fonctions dans le tableau de bord de DigitalOcean.
- Trouvez votre fonction (par exemple,
reminders/birthdays
) et cliquez sur l’onglet Déclencheurs.
- Cliquez sur Créer un déclencheur, ajoutez un Nom à votre déclencheur. Cela peut être n’importe quoi de descriptif, comme
daily-birthday-trigger
. Le nom ne doit contenir que des caractères alphanumériques, des tirets et des points. - Ajoutez une expression cron pour définir le planning. Par exemple,
0 9 * * *
signifie que la fonction s’exécutera tous les jours à 9h00.
Remarque: Si vous n’êtes pas sûr du fonctionnement de cron, consultez crontab.guru pour un guide pratique.
- Enregistrez le déclencheur.
Une fois que vous avez créé votre déclencheur, il est judicieux de le tester pour vous assurer que tout fonctionne comme prévu. Rendez-vous à la section Tester l’Automatisation ci-dessous pour apprendre comment faire.
Avertissement : Bien que le tableau de bord soit simple et efficace, tout déclencheur que vous créez ici sera écrasé ou supprimé si vous redéployez la fonction en utilisant la CLI. Pour des mises à jour fréquentes ou des déploiements programmatiques, passez à Option 2.
Option 2 : Utilisation de la doctl
CLI avec project.yml
Vous pouvez également créer des déclencheurs en les ajoutant directement à votre fichier project.yml. Cette méthode est plus fiable pour des redéploiements fréquents car elle garantit que vos déclencheurs sont toujours inclus dans la configuration de la fonction. Contrairement à l’option du panneau de contrôle décrite précédemment, cette approche empêche les déclencheurs d’être écrasés ou perdus lors des redéploiements.
Voici comment vous pouvez le configurer :
-
Ouvrez votre fichier
project.yml
de Day 4: Déploiement des notifications d’anniversaire avec les fonctions DigitalOcean. Il pourrait ressembler à ceci : -
Ajoutez une section
triggers
à la configuration de votre fonction pour définir le calendrier : -
Fichier
project.yml
mis à jour final :Cela indique à DigitalOcean d’exécuter la fonction
anniversaires
tous les jours à 9h00.-
triggers
section: Définit le nom, le type et le calendrier pour le déclencheur. Vous pouvez nommer votre déclencheur de manière descriptive, commedéclencheur-quotidien-anniversaire
. -
cron
: Spécifie l’heure à laquelle la fonction s’exécutera quotidiennement en UTC. L’expression cron0 9 * * *
par exemple, programme la fonction pour s’exécuter tous les jours à 9h00.
-
-
Enregistrez le fichier et déployez-le en exécutant la commande suivante depuis le répertoire contenant le dossier
my-birthday-reminder-service
:Important : Assurez-vous d’exécuter la commande depuis le répertoire parent, et non à l’intérieur du dossier
my-birthday-reminder-service
. L’exécuter depuis le mauvais emplacement peut entraîner une erreur comme celle-ci : -
Une fois le déploiement réussi, vous verrez un message de confirmation similaire à celui-ci :
-
Allez sur votre tableau de bord pour vérifier que le déclencheur a été créé sous la section Fonctions.
Conseil professionnel: Pour tester votre déclencheur, définissez temporairement l’expression cron à quelques minutes à partir de maintenant (par exemple, 28 9 * * *
s’il est 9h25). Après avoir confirmé que cela fonctionne, mettez-le à jour avec votre planning prévu et redéployez.
Étape 2 : Tester l’automatisation
Testons vos déclencheurs pour nous assurer qu’ils fonctionnent. Au lieu d’attendre qu’ils se déclenchent selon leur planning habituel, vous pouvez temporairement les programmer pour s’exécuter quelques minutes plus tard. Voici comment procéder :
-
Définissez l’expression cron pour votre déclencheur à quelques minutes après l’heure actuelle (en UTC). Par exemple, s’il est 9h25 UTC, définissez l’expression cron à
28 9 * * *
pour que la fonction s’exécute à 9h28 UTC.Remarque: Vous ne savez pas comment convertir votre heure locale en UTC ? Des outils comme Convertisseur de fuseau horaire peuvent vous aider.
-
Enregistrez le déclencheur mis à jour (si vous utilisez le panneau de contrôle) ou redéployez votre fichier
project.yml
mis à jour (si vous utilisez l’interface en ligne de commande) : -
Attendez que le déclencheur s’exécute, puis vérifiez les journaux d’activation pour confirmer que la fonction s’est exécutée avec succès :
Remarque : Les journaux d’activation enregistrent des détails sur le moment où votre fonction a été exécutée, y compris si elle a réussi ou rencontré des erreurs. Ils constituent un moyen utile de vérifier que votre déclencheur s’est activé à l’heure prévue.
Cette commande retournera les détails de la dernière activation de votre fonction. Par exemple, vous pourriez voir quelque chose comme ceci :
Cela confirme que le déclencheur s’est activé et que la fonction a été activée avec succès ! 🎉
Remarque : Une fois que vous avez vérifié que tout fonctionne, mettez à jour l’expression cron selon votre emploi du temps prévu (par exemple, 0 9 * * *
pour 9h00 UTC tous les jours) et enregistrez ou redéployez.
Une brève note sur les journaux
Bien que la commande journaux d'activations
soit un excellent moyen de vérifier les exécutions récentes, il arrive parfois que vous ayez besoin de journaux plus détaillés pour déboguer ou enquêter sur des problèmes avec votre fonction. DigitalOcean fournit également des options pour transférer ces journaux vers des services de journalisation externes, facilitant ainsi la surveillance et le dépannage de votre application au fil du temps.
Le sixième jour, vous apprendrez à visualiser directement les journaux, à les interpréter efficacement et à configurer la redirection des journaux vers des services externes tels que Logtail ou Papertrail. Ces outils vous aideront à suivre facilement les performances de votre fonction.
🎁 Conclusion
Voici ce que vous avez accompli aujourd’hui :
- Vous avez automatisé votre service de rappel d’anniversaire (ou toute autre fonction) pour qu’il s’exécute quotidiennement.
- Vous avez appris deux façons de configurer des déclencheurs : via le Panneau de Contrôle et avec le CLI
doctl
. - Vous avez testé votre configuration pour vous assurer qu’elle fonctionne comme prévu.
Voici les tutoriels précédents de cette série :
- Jour 1 : Configuration d’une base de données PostgreSQL pour les rappels d’anniversaire
- Jour 2 : Connexion à votre base de données PostgreSQL avec Python
- Jour 3 : Vérification des anniversaires et envoi de notifications par SMS
- Jour 4 : Déploiement des notifications d’anniversaire vers les fonctions
Prochainement : Maintenant que votre service fonctionne de manière autonome, la prochaine étape consiste à le surveiller efficacement. Dans le prochain tutoriel, vous apprendrez comment consulter les journaux de votre fonction et les transmettre à des services externes pour simplifier le suivi et le dépannage. À bientôt !
Source:
https://www.digitalocean.com/community/tutorials/automating-birthday-reminders-with-triggers