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 workflow 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

Pour démarrer et exécuter votre workflow une seule fois à l’avenir, utilisez le modèle de workflow nommé Scheduler: Run Once Jobs. 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é. Pour plus d’informations, consultez Exécuter des travaux une seule fois.

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 workflow, comme les workflows d’application logique Consommation et les workflows 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.

  • Ressource d’application logique Consommation ou Standard 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 workflows sans état.

Ajouter le déclencheur de périodicité

En fonction de la consommation ou de la norme de votre flux de travail, suivez les étapes correspondantes :

  1. Dans le Portail Azure, ouvrez votre ressource d’application logique et votre flux de travail vide.

  2. Suivez ces étapes générales pour ajouter le déclencheur intégré Schedule nommé Périodicité.

  3. 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 :

    Screenshot for Consumption workflow designer with Recurrence trigger interval and frequency.

    Propriété Nom JSON Requis Type Description
    Intervalle interval Oui Entier Nombre entier positif qui décrit la fréquence à laquelle le flux de travail s’exécute en fonction de la fréquence. Voici les intervalles minimum et maximal :

    - 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 String L’unité de temps de la périodicité est : Seconde, Minute, Heure, Jour, Semaine ou Mois.

    Important : si vous sélectionnez la fréquence jour, semaine ou mois , et que vous spécifiez une date et une heure de début 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.
  4. Passez en revue les considérations suivantes lorsque vous utilisez le déclencheur Périodicité :

    • Si vous ne spécifiez pas de date et d’heure de début spécifiques, la première périodicité s’exécute immédiatement lorsque vous enregistrez le flux de travail ou déployez la ressource d’application logique, malgré la configuration de 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 ultérieures, ces périodicités sont basées sur 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 de périodicité, en particulier lorsque la fréquence est en jours ou plus, 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 workflows 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 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.

  5. 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 String 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.
    Heure de début startTime Non String Fournissez une date et une heure de début, qui a un maximum de 49 ans à l’avenir et doit suivre la spécification iso 8601 de date heure au format d’heure UTC, mais sans décalage UTC :

    AAAA-MM-DDThh :mm :ss si vous sélectionnez un fuseau horaire

    -Ou-

    AAAA-MM-DDThh :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 espaces. 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 10 h, 12 h et 2 h pour les 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’à 1 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.

    Screenshot for Consumption workflow designer and Recurrence trigger with advanced scheduling options.

    Par exemple, supposons que nous sommes le lundi 4 septembre 2020 aujourd’hui. Le déclencheur Récurrence 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é ?

    Screenshot showing Consumption workflow and Recurrence trigger with advanced scheduling example.

    Remarque

    Le déclencheur affiche un aperçu de votre périodicité spécifiée uniquement lorsque vous sélectionnez Jour ou Semaine comme fréquence.

  6. 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 workflow :

"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 Récurrence, 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 récurrence. 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"
    }
}

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.

Étapes suivantes