Planifier et exécuter des workflows récurrents avec le déclencheur Récurrence dans Azure Logic Apps
S’applique à : Azure Logic Apps (Consommation + Standard)
Pour démarrer et exécuter votre flux de travail en suivant une planification, vous pouvez utiliser le déclencheur de périodicité générique comme première étape. Vous pouvez définir une date, une heure et un fuseau horaire pour démarrer le flux de travail, et une récurrence pour la répétition de ce flux de travail. La liste suivante contient quelques modèles pris en charge par ce déclencheur, ainsi que des récurrences plus avancées et des planifications complexes :
Exécuter à une date et une heure spécifiques, et répéter tou(te)s les n secondes, minutes, heures, jours, semaines ou mois.
Exécuter immédiatement et répéter tou(te)s les n secondes, minutes, heures, jours, semaines ou mois.
Exécutez immédiatement et répétez quotidiennement à une ou plusieurs heures spécifiques, par exemple 8 h et 17 h.
Exécutez immédiatement et répétez chaque semaine à des jours spécifiques, comme le samedi et le dimanche.
Exécuter immédiatement et répéter chaque semaine, à des heures précises, par exemple du lundi au vendredi à 8h00 et 17h00.
Remarque
Les options de planification avancées, telles que Aux heures indiquées et Aux jours indiqués, sont disponibles et fonctionnent uniquement avec les déclencheurs d’interrogation intégrés, tels que les déclencheurs de périodicité et de fenêtre glissante, qui s’exécutent directement avec le runtime Azure Logic Apps. Pour les connecteurs gérés par Microsoft, hébergés et exécutés dans Azure, les déclencheurs d’interrogation calculent la périodicité suivante en utilisant uniquement les valeurs Intervalle et Fréquence, et non les options de planification avancées.
Le déclencheur de périodicité n’est associé à aucun service spécifique. Vous pouvez donc utiliser le déclencheur avec presque n’importe quel flux de travail, comme les flux de travail d’application logique Consommation et les flux de travail avec état d’application logique Standard. Ce déclencheur n’est actuellement pas disponible pour les workflows sans état d’application logique Standard.
Le déclencheur de périodicité fait partie du connecteur de planification intégré et s’exécute en mode natif sur le runtime Azure Logic Apps. Pour plus d’informations sur les déclencheurs et actions de Planification intégrés, voir Planifier et exécuter des tâches et des workflows automatisés et récurrents avec Azure Logic Apps.
Prérequis
Un compte et un abonnement Azure. Si vous n’avez pas encore d’abonnement, vous pouvez vous inscrire pour obtenir un compte Azure gratuitement.
Une ressource d’application logique Standard ou Consommation avec un flux de travail vide.
Remarque
Si vous avez créé un workflow d’application logique Standard, veillez à créer un workflow avec état. Le déclencheur de périodicité n’est actuellement pas disponible pour les flux de travail sans état.
Ajouter le déclencheur de périodicité
Selon que votre flux de travail est Consommation ou Standard, suivez les étapes correspondantes :
Sur le Portail Azure, ouvrez votre ressource d’application logique et votre flux de travail vide.
Suivez ces étapes générales pour ajouter le déclencheur intégré de planification nommé Périodicité.
Définissez l’intervalle et la fréquence de la périodicité. Dans cet exemple, définissez ces propriétés de sorte que votre flux de travail soit exécuté chaque semaine, par exemple :
Propriété Nom JSON Requis Type Description Intervalle interval
Oui Integer Nombre entier positif qui décrit la fréquence à laquelle le flux de travail s’exécute en fonction de la fréquence. Les intervalles minimaux et maximaux sont les suivants :
- Mois : 1-16 mois
- Semaine : 1-71 semaines
- Jour : 1-500 jours
- Heure : 1-12 000 heures
- Minute : 1-72 000 minutes
- Seconde : 1-9 999 999 secondes
Par exemple, si l’intervalle est de 6 et que la fréquence soit définie sur « Mois », la périodicité est alors tous les 6 mois.Fréquence frequency
Oui Chaîne L’unité de temps de la périodicité est : Seconde, Minute, Heure, Jour, Semaine ou Mois.
Important : Si vous utilisez la fréquence Jour, Semaine ou Mois et que vous spécifiez une date et une heure ultérieures, veillez à configurer la périodicité à l’avance. Sinon, il est possible que le flux de travail ignore la première périodicité.
- Jour : configurez la périodicité quotidienne au moins 24 heures à l’avance.
- Semaine : configurez la périodicité hebdomadaire au moins 7 jours à l’avance.
- Mois : configurez la périodicité mensuelle au moins un mois à l’avance.Passez en revue les considérations suivantes lorsque vous utilisez le déclencheur de périodicité :
Si vous ne spécifiez pas une date et une heure de début spécifiques, la première périodicité s’exécute immédiatement lorsque vous enregistrez ou déployez la ressource d’application logique, en dépit de la configuration de la périodicité de votre déclencheur. Pour éviter ce comportement, indiquez la date et l'heure de début de l'exécution de la première occurrence.
Si vous ne spécifiez pas d’autres options de planification avancées, telles que des heures spécifiques pour exécuter des périodicités futures, celles-ci sont basées sur l’heure de la dernière exécution. Par conséquent, les heures de début de ces périodicités peuvent dériver en raison de facteurs tels que la latence lors des appels de stockage.
Pour vous assurer que votre flux de travail ne manque pas une périodicité, en particulier quand la fréquence est définie en jours ou sur une valeur plus longue, essayez les options suivantes :
Fournissez une date et une heure de début pour la périodicité et des heures spécifiques pour exécuter les périodicités suivantes. Vous pouvez utiliser les propriétés nommées At these hours et At these minutes, qui ne sont disponibles que pour les fréquences Day et Week.
Pour les flux de travail d’application logique Consommation, utilisez le déclencheur de fenêtre glissante plutôt que le déclencheur de périodicité.
Si vous déployez un flux de travail Consommation désactivé avec un déclencheur de périodicité à l’aide d’un modèle ARM, le déclencheur se déclenche instantanément lorsque vous activez le flux de travail, sauf si vous définissez le paramètre Heure de début avant le déploiement.
Pour définir des options de planification avancées, ouvrez la liste Ajouter un nouveau paramètre. Toutes les options que vous sélectionnez s’affichent sur le déclencheur.
Propriété Nom JSON Requis Type Description Fuseau horaire timeZone
Non Chaîne S’applique uniquement quand vous spécifiez une heure de début, car ce déclencheur n’accepte pas le décalage UTC. Sélectionnez le fuseau horaire à appliquer. Pour plus d’informations, consultez Fuseaux horaires par défaut. Heure de début startTime
Non Chaîne Fournissez une date et une heure de début, qui ne peuvent pas dépasser 49 ans dans le futur et doivent être conformes à la spécification de date/heure ISO 8601 au format de date/heure UTC, mais sans décalage UTC :
AAAA-MM-JJThh:mm:ss si vous sélectionnez un fuseau horaire
-ou-
AAAA-MM-JJThh:mm:ssZ si vous ne sélectionnez pas de fuseau horaire
Par exemple, si vous choisissez le 18 septembre 2020 à 14h00, alors spécifiez « 2020-09-18T14:00:00 » et sélectionnez un fuseau horaire tel que « Pacific Standard Time » (Heure standard du Pacifique). Vous pouvez également spécifier « 2020-09-18T14:00:00Z » sans fuseau horaire.
Important : Si vous ne sélectionnez pas de fuseau horaire, vous devez ajouter la lettre « Z » à la fin sans espace. Ce « Z » fait référence au temps nautique équivalent. Si vous sélectionnez une valeur de fuseau horaire, vous n’avez pas besoin d’ajouter un « Z » à la fin de votre valeur Heure de début. Dans ce cas, Logic Apps ignore la valeur de fuseau horaire, car « Z » désigne un format d’heure UTC.
Pour les planifications simples, l’heure de début est la première occurrence, tandis que pour les planifications complexes, le déclencheur ne s’active pas avant l’heure de début. Comment puis-je utiliser la date et l’heure de début ?Aux jours indiqués weekDays
Non Chaîne ou tableau de chaînes Si vous sélectionnez « Semaine », vous pouvez sélectionner un ou plusieurs jours pour l’exécution du flux de travail : Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi et Dimanche Aux heures indiquées hours
Non Entier ou tableau d’entiers Si vous sélectionnez « Jour » ou « Semaine », vous pouvez sélectionner un ou plusieurs entiers compris entre 0 et 23 pour les heures de la journée durant lesquelles exécuter le flux de travail. Par exemple, si vous spécifiez « 10 », « 12 » et « 14 », vous obtenez 10h00, 12h00 et 14h00 comme heures de la journée.
Remarque : Par défaut, les minutes du jour sont calculées en fonction du démarrage de la périodicité. Pour définir des minutes spécifiques du jour, par exemple, 10h00, 12h00 et 14h00, spécifiez ces valeurs à l’aide de la propriété nommée Aux minutes indiquées.Aux minutes indiquées minutes
Non Entier ou tableau d’entiers Si vous sélectionnez « Jour » ou « Semaine », vous pouvez sélectionner un ou plusieurs entiers compris entre 0 et 59 pour les minutes de l’heure durant lesquelles exécuter le flux de travail.
Par exemple, vous pouvez spécifier « 30 » pour les minutes et à l’aide de l’exemple précédent des heures de la journée, vous obtenez 10h30, 12h30 et 14h30.
Remarque : Parfois, l’horodatage de l’exécution déclenchée peut varier jusqu’à une minute par rapport à l’heure planifiée. Si vous devez transmettre l’horodatage exactement comme prévu aux actions suivantes, vous pouvez utiliser des expressions de modèle pour modifier l’horodatage en conséquence. Pour plus d’informations, consultez Fonctions de date et d’heure pour les expressions.Par exemple, supposons que nous sommes le lundi 4 septembre 2020 aujourd’hui. Le déclencheur de périodicité suivant ne s’active pas avant la date et l’heure de début spécifiées, à savoir le vendredi 18 septembre 2020 à 8h00, heure du Pacifique. Notez toutefois que la périodicité planifiée est définie sur 10h30, 12h30 et 14h30 uniquement le lundi. Le déclencheur s’activera et créera une instance de workflow pour la première fois le lundi à 10h30. Pour plus d’informations sur le fonctionnement des heures de début, consultez ces exemples d’heure de début.
Les exécutions suivantes auront lieu le même jour à 12h30 et 14h30. Chaque périodicité crée sa propre instance de flux de travail. L’ensemble de la planification se répète ensuite régulièrement chaque lundi. Existe-t-il d’autres exemples de périodicité ?
Remarque
Le déclencheur affiche un aperçu de la périodicité que vous avez spécifiée uniquement quand vous sélectionnez Jour ou Semaine comme fréquence.
Continuez maintenant à construire votre workflow avec d’autres actions.
Définition du flux de travail - Récurrence
Vous pouvez voir comment la définition du déclencheur de périodicité s’affiche avec vos options choisies en examinant la définition JSON sous-jacente de votre workflow dans les applications logiques Consommation et les applications logiques Standard (avec état uniquement).
Selon que votre application logique est Consommation ou Standard, choisissez l’une des options suivantes :
Consommation : Dans la barre d’outils du Concepteur, sélectionnez Mode Code. Pour revenir au concepteur, dans la barre d’outils de l’éditeur du mode Code, sélectionnez Concepteur.
Standard : dans le menu workflow, sélectionnez Mode Code. Pour revenir au concepteur, dans le menu du workflow, sélectionnez Concepteur.
L’exemple suivant montre comment une définition de déclencheur de périodicité peut apparaître dans la définition JSON sous-jacente du flux de travail :
"triggers": {
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Week",
"interval": 1,
"schedule": {
"hours": [
10,
12,
14
],
"minutes": [
30
],
"weekDays": [
"Monday"
]
},
"startTime": "2020-09-07T14:00:00Z",
"timeZone": "Pacific Standard Time"
}
}
}
Remarque
Dans la définition du déclencheur de périodicité, la propriété evaluatedRecurrence
apparaît avec la propriété recurrence
quand une expression ou une référence de paramètre apparaît dans les critères de périodicité. Cette propriété evaluatedRecurrence
représente les valeurs évaluées à partir de l’expression ou de la référence de paramètre. Si les critères de récurrence ne spécifient aucune expression ou référence de paramètre, les propriétés evaluatedRecurrence
et recurrence
sont identiques.
L’exemple suivant montre comment mettre à jour la définition du déclencheur afin que celui-ci ne s’exécute qu’une seule fois le dernier jour de chaque mois :
"triggers": {
"Recurrence": {
"recurrence": {
"frequency": "Month",
"interval": 1,
"schedule": {
"monthDays": [-1]
}
},
"type": "Recurrence"
}
}
Une seule exécution
Pour n’exécuter votre flux de travail qu’une seule fois à l’avenir, vous pouvez appliquer le modèle de flux de travail Planificateur : Exécuter une seule fois les travaux, disponible uniquement pour les flux de travail d’application logique Consommation. Ce modèle utilise le déclencheur de requête et l’action HTTP, plutôt que le déclencheur de périodicité, qui ne prend pas en charge ce modèle de périodicité.
Sur le Portail Azure, créez une application logique Consommation.
Dans le concepteur, ouvrez le flux de travail vide. Dans la barre d’outils du concepteur, sélectionnez Activer le concepteur hérité.
Sur la barre d'outils du concepteur, sélectionnez Modèles.
Dans la page qui s’ouvre, faites défiler après la vidéo vers la section Modèles.
Dans la liste Catégorie, sélectionnez Planification, puis sélectionnez le modèle suivant :
Dans la barre d’outils du concepteur, sélectionnez Concepteur en disponibilité générale.
Suivez ces étapes générales pour ajouter l’action Planification nommée Retarder jusqu’à, et indiquez l’heure à laquelle l’action suivante commence à s’exécuter.
Vous pouvez également démarrer votre flux de travail avec le déclencheur Requête nommé Lors de la réception d’une demande HTTP, puis passer l’heure de début comme paramètre du déclencheur.
Exécuter une seule fois le dernier jour du mois
Pour cette tâche, vous devez modifier le déclencheur de périodicité dans la définition JSON sous-jacente du flux de travail à l’aide de la vue de code, et non du concepteur, à l’aide de l’exemple suivant :
"triggers": {
"Recurrence": {
"recurrence": {
"frequency": "Month",
"interval": 1,
"schedule": {
"monthDays": [-1]
}
},
"type": "Recurrence"
}
}
Décalage et dérive de la périodicité du déclencheur (heure d’été)
Pour planifier des travaux, Azure Logic Apps met le message à traiter dans la file d’attente et spécifie le moment où ce message devient disponible, en fonction de l’heure UTC de l’exécution de la dernière tâche et de l’heure UTC pour l’exécution planifiée de la tâche suivante. Si vous spécifiez une heure de début avec votre périodicité, veillez à sélectionner un fuseau horaire afin que le flux de travail de votre application logique s’exécute à l’heure de début spécifiée. De cette façon, l’heure UTC de votre application logique est également décalée pour prendre en compte le changement d’heure saisonnier. Les déclencheurs récurrents respectent le calendrier que vous fixez, fuseaux horaires compris.
Dans le cas contraire, si vous ne sélectionnez pas de fuseau horaire, des événements à l’heure d’été peuvent avoir une incidence sur le moment d’exécution des déclencheurs. Par exemple, l’heure de début est avancée d’une heure lors du passage à l’heure d’été et reculée d’une heure lors du passage à l’heure d’hiver. Toutefois, certaines fenêtres de temps peuvent causer des problèmes lorsque l’heure change. Pour plus d'informations et pour obtenir des exemples, consultez Périodicité pour l'heure d'été et l'heure d'hiver.