Un déclencheur temporel exécute automatiquement une fonction à un moment précis ou selon un planning récurrent. Cette fonctionnalité offre une planification flexible des tâches et convient parfaitement aux applications nécessitant des traitements périodiques.
Cas d'usage
Les déclencheurs temporels sont couramment utilisés dans les scénarios suivants :
Traitement par lots planifié de données, comme la collecte horaire de données complètes pour générer des rapports.
Programmation d'actions quotidiennes, telles que l'envoi de coupons à une heure fixe.
Exécution de tâches asynchrones découplées de la logique métier, par exemple le nettoyage quotidien des données à minuit.
Prérequis
Étape 1 : Créer un déclencheur temporel
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez .
Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.
Sur la page de détails de la fonction, sélectionnez l'onglet Trigger, puis cliquez sur Create Trigger.
-
Dans le panneau Create Trigger, configurez les paramètres, puis cliquez sur OK.
Paramètre
Action
Exemple
Trigger Type
Sélectionnez Time Trigger.
Time Trigger
Name
Saisissez un nom personnalisé pour le déclencheur.
my_trigger
Version or Alias
La valeur par défaut est LATEST. Pour créer un déclencheur associé à une autre version ou à un alias, basculez d'abord vers cette version ou cet alias dans le coin supérieur droit de la page de détails de la fonction. Pour plus d'informations sur les versions et les alias, consultez Gestion des versions et Gestion des alias.
LATEST
Trigger Mode
Choisissez le mode de déclenchement adapté à vos besoins :
Interval : dans la zone de texte Interval, saisissez un entier positif n pour exécuter la fonction toutes les n minutes.
Select Custom Time : sélectionnez un fuseau horaire, puis spécifiez une date, un jour de la semaine et une heure pour exécuter la fonction au moment indiqué dans ce fuseau.
Custom Settings : dans la zone de texte Cron Expression, saisissez une expression cron afin d'exécuter la fonction selon la planification définie par cette expression.
Time Interval
Trigger Message
Saisissez des paramètres personnalisés. Ce message de déclenchement sert de valeur au champ payload de l'événement.
La taille du message de déclenchement est limitée à 128 Ko, soit la même limite que pour le payload des invocations asynchrones.
awesome-fc
Si vous avez des exigences spécifiques en matière de fuseau horaire et devez personnaliser l'Cron Expression, reportez-vous aux descriptions suivantes concernant les expressions temporelles.
-
Expression cron (UTC)
Par défaut, les expressions cron s'exécutent en UTC, soit 8 heures de moins que l'heure de Pékin (UTC+8). Par exemple, pour planifier une fonction quotidienne à 12:00 heure de Pékin (UTC+8), l'heure UTC correspondante étant 04:00, utilisez
0 0 4 * * *. -
Expression cron (UTC+8)
Si votre tâche doit s'exécuter dans un fuseau horaire spécifique, indiquez-le à l'aide de CRON_TZ. Par exemple, pour déclencher une fonction à 04:00 le premier jour de chaque mois dans le fuseau UTC+8, utilisez
CRON_TZ=Asia/Shanghai 0 0 4 1 * *. Les expressions de fuseau horaire varient selon les régions ; utilisez celle qui correspond à votre région.RemarqueSi votre fuseau horaire observe l'heure d'été (DST), les tâches risquent d'être exécutées deux fois ou ignorées lors de la transition entre l'heure d'été et l'heure standard. Nous vous recommandons de planifier vos tâches en dehors de ces périodes de transition.
Une fois le déclencheur créé, il apparaît dans la liste Trigger Name. Pour modifier ou supprimer le déclencheur, consultez Gérer les déclencheurs.
Étape 2 : Configurer les paramètres d'entrée de la fonction
Dans l'onglet Code de la page de détails de la fonction, cliquez sur l'icône
située à côté de Test Function, puis sélectionnez Configure Test Parameters dans la liste déroulante.-
Dans le panneau Configure Test Parameters, sélectionnez Create New Test Event ou Modify Existing Test Event. Saisissez un nom d'événement ainsi que son contenu, puis cliquez sur OK.
Un déclencheur temporel utilise le format d'événement suivant pour invoquer la fonction.
{ "triggerTime":"2023-12-26T07:49:00Z", "triggerName":"timer-trigger", "payload":"awesome-fc" }Paramètre
Type
Valeur d'exemple
Description
triggerTime
String
2023-12-26T07:49:00Z
Heure à laquelle la fonction a été déclenchée.
triggerName
String
timer-trigger
Nom du déclencheur temporel.
payload
String
awesome-fc
Paramètre personnalisé saisi lors de la configuration du déclencheur. Il correspond à la valeur du champ Trigger Message.
Étape 3 : Écrire et tester le code de la fonction
Après avoir créé le déclencheur temporel, écrivez et testez le code de la fonction pour vérifier son bon fonctionnement. Le déclencheur temporel exécute automatiquement la fonction à l'heure spécifiée.
-
Sur la page de détails de la fonction, dans l'onglet Code, écrivez le code dans l'éditeur, puis cliquez sur Deploy.
Cette rubrique prend le code Python comme exemple. Le code d'exemple est le suivant.
import json import logging logger = logging.getLogger() def handler(event, context): logger.info('event: %s', event) # Parse the JSON. evt = json.loads(event) triggerName = evt["triggerName"] triggerTime = evt["triggerTime"] payload = evt["payload"] logger.info('triggerName: %s', triggerName) logger.info("triggerTime: %s", triggerTime) logger.info("payload: %s", payload) return 'Timer Payload: ' + payload -
Cliquez sur Test Function.
Une fois l'exécution terminée, consultez le résultat au-dessus de l'onglet Code.
Références
Si le déclencheur temporel configuré ne parvient pas à exécuter la fonction, vérifiez d'abord le mode de déclenchement ainsi que les paramètres horaires correspondants. Si vous avez défini une Cron Expression personnalisée, notez qu'elle utilise l'UTC par défaut. Pour les méthodes de dépannage, consultez Que faire si un déclencheur ne parvient pas à exécuter une fonction ?.