Partager via


Créer un déclencheur qui exécute un pipeline selon une planification

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Cet article fournit des informations sur le déclencheur de planification et les étapes pour créer, démarrer et surveiller un déclencheur de planification. Pour les autres types de déclencheurs, consultez Exécution du pipeline et déclencheurs.

Lorsque vous créez un déclencheur de planification, vous spécifiez une planification comme une date de début, une périodicité ou une date de fin pour le déclencheur et l’associer à un pipeline. Les pipelines et les déclencheurs ont une relation plusieurs-à-plusieurs. Plusieurs déclencheurs peuvent exécuter le même pipeline. Un seul déclencheur peut déclencher plusieurs pipelines.

Les sections suivantes indiquent les étapes pour créer un déclencheur de planification de différentes façons.

Expérience du portail Azure Data Factory et Azure Synapse

Vous pouvez créer un déclencheur de planification afin de planifier l’exécution périodique d’un pipeline (par exemple toutes les heures ou tous les jours.

Remarque

Pour la procédure complète de création d’un pipeline et d’un déclencheur de planification, qui associe le déclencheur au pipeline et exécute et supervise le pipeline, consultez Démarrage rapide : créer une fabrique de données à l’aide de l’interface utilisateur de Data Factory.

  1. Passez à l’onglet Modification de Data Factory ou à l’onglet Intégrer d’Azure Synapse.


  1. Sélectionnez Déclencheur dans le menu, puis sélectionnez Nouveau/Modifier.

    Capture d’écran montrant le menu Nouveau déclencheur.

  2. Sur la page Ajouter des déclencheurs, sélectionnez Choisir un déclencheur, puis Nouveau.

    Capture d’écran montrant le volet Ajouter des déclencheurs.

  3. Sur la page Nouveau déclencheur :

    1. Vérifiez que Planifier est sélectionné pour Type.

    2. Spécifiez la date et l’heure de début du déclencheur pour Date de début. Par défaut, elles sont définies sur la date et l’heure actuelles en temps universel coordonné (UTC).

    3. Spécifiez le fuseau horaire dans lequel le déclencheur est créé. Le paramètre de fuseau horaire s’applique à Date de début, Date de fin et Planifier les temps d’exécution dans Options de périodicité avancées. La modification du paramètre Fuseau horaire ne modifie pas automatiquement votre date de début. Vérifiez que la date de début est correcte dans le fuseau horaire spécifié. L’Heure d’exécution planifiée du déclencheur est considérée comme postérieure à la date de début. (Vérifiez que la date de début est antérieure à l’heure d’exécution d’au moins 1 minute ou qu’elle déclenche le pipeline dans la périodicité suivante.)

      Remarque

      Pour les fuseaux horaires qui respectent l’heure d’été, l’heure de déclenchement est ajustée automatiquement au changement survenant deux fois par an si la périodicité est définie sur Jours ou une fréquence supérieure. Pour désactiver le passage à l’heure d’été, sélectionnez un fuseau horaire qui ne tient pas compte de l’heure d’été, par exemple UTC.

      L’ajustement à l’heure d’été se produit uniquement pour un déclencheur dont la périodicité est définie sur Jours ou une fréquence supérieure. Si le déclencheur est défini sur la fréquence Heures ou Minutes, il continue à se déclencher à intervalles réguliers.

    4. Spécifiez la Périodicité du déclencheur. Sélectionnez une des valeurs dans la liste déroulante (Toutes les minutes, Toutes les heures, Quotidien, Hebdomadaire ou Mensuel). Entrez le multiplicateur dans la zone de texte. Par exemple, si vous souhaitez exécuter le déclencheur toutes les 15 minutes, vous sélectionnez Toutes les minutes, puis entrez 15 dans la zone de texte.

    5. Sous Périodicité, si vous choisissez Jour(s), Semaine(s) ou Mois dans la liste déroulante, vous retrouverez Options de périodicité avancées.

      Capture d’écran montrant les options avancées de périodicité Jour(s), Semaine(s) et Mois.

    6. Pour spécifier une date de fin, sélectionnez Spécifier une date de fin. Spécifiez les informations pour Se termine le, puis sélectionnez OK.

      Un coût est associé à chaque exécution de pipeline. Si vous effectuez un test, vous souhaiterez peut-être vous assurer que le pipeline n’est déclenché que deux fois. Toutefois, vérifiez que la durée est suffisante entre l’heure de publication et l’heure de fin pour permettre l’exécution du pipeline. Le déclencheur ne s’applique que lorsque vous avez publié la solution, et non lorsque vous enregistrez le déclencheur dans l’interface utilisateur.

      Capture d’écran montrant les paramètres du déclencheur.

      Capture d’écran montrant les paramètres de déclencheur pour la date et l’heure de fin.

  4. Dans la fenêtre Nouveau déclencheur, sélectionnez Oui dans l’option Activé, puis OK. Vous pouvez utiliser cette case à cocher pour désactiver le déclencheur ultérieurement.

    Capture d’écran montrant l’option Activé.

  5. Dans la fenêtre Nouveau déclencheur, consultez le message d’avertissement, puis sélectionnez OK.

    Capture d’écran montrant la sélection du bouton OK.

  6. Sélectionnez Publier tout pour publier les modifications. Tant que vous n’avez pas publié les modifications, le déclencheur ne démarre pas le déclenchement des exécutions du pipeline.

    Capture d’écran montrant le bouton Publier tout.

  7. Basculez sur l’onglet Exécutions de pipeline sur la gauche, puis sélectionnez Actualiser pour actualiser la liste. Vous observez les exécutions du pipeline déclenchées par déclencheur planifié. Notez les valeurs dans la colonne Déclenché par. Si vous utilisez l’option Déclencher maintenant, l’exécution du déclencheur manuelle apparaît dans la liste.


  1. Passez à l’affichage Exécutions du déclencheur>Planifier.


Azure PowerShell

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Cette section montre comment utiliser Azure PowerShell pour créer, démarrer et surveiller un déclencheur de planification. Pour voir cet exemple en action, commencez par lire Démarrage rapide : créer une fabrique de données à l’aide d’Azure PowerShell. Ensuite, ajoutez le code suivant à la méthode main : il crée et lance un déclencheur de planification qui s’exécute toutes les 15 minutes. Le déclencheur est associé à un pipeline nommé Adfv2QuickStartPipeline, créé dans le cadre du démarrage rapide.

Prérequis

Exemple de code

  1. Créez un fichier JSON nommé MyTrigger.json dans le dossier *C:\ADFv2QuickStartPSH* avec le contenu suivant :

    Important

    Avant d’enregistrer le fichier JSON, affectez l’heure UTC actuelle comme valeur de l’élément startTime. Définissez la valeur de l’élément endTime sur une (1) heure après l’heure UTC actuelle.

    {
        "properties": {
            "name": "MyTrigger",
            "type": "ScheduleTrigger",
            "typeProperties": {
                "recurrence": {
                    "frequency": "Minute",
                    "interval": 15,
                    "startTime": "2017-12-08T00:00:00Z",
                    "endTime": "2017-12-08T01:00:00Z",
                    "timeZone": "UTC"
                }
            },
            "pipelines": [{
                    "pipelineReference": {
                        "type": "PipelineReference",
                        "referenceName": "Adfv2QuickStartPipeline"
                    },
                    "parameters": {
                        "inputPath": "adftutorial/input",
                        "outputPath": "adftutorial/output"
                    }
                }
            ]
        }
    }
    

    Dans l’extrait de code JSON :

    • L’élément type du déclencheur est défini sur ScheduleTrigger.

    • L’élément frequency est défini sur Minute et l’élément interval est défini sur 15. Par conséquent, le déclencheur exécute le pipeline toutes les 15 minutes entre l’heure de début et l’heure de fin.

    • L’élément timeZone spécifie le fuseau horaire dans lequel le déclencheur est créé. Ce paramètre affecte à la fois startTime et endTime.

    • L’élément endTime est une (1) heure après la valeur de l’élément startTime. Le déclencheur exécute alors le pipeline 15 minutes, 30 minutes et 45 minutes après l’heure de début. N’oubliez pas de définir l’heure de début sur l’heure UTC actuelle et l’heure de fin sur une (1) heure après l’heure de début.

      Important

      Pour le fuseau horaire UTC, startTime et endTime doivent suivre le format yyyy-MM-ddTHH:mm:ssZ. Pour les autres fuseaux horaires, startTime et endTime suivez le format yyyy-MM-ddTHH:mm:ss.

      Conformément à la norme ISO 8601, le suffixe Z est utilisé pour marquer l’horodateur de DateHeure sur le fuseau horaire UTC et rendre le champ timeZone inutile. Si le suffixe Z du fuseau horaire UTC est manquant, le résultat est une erreur lors de l’activation du déclencheur.

    • Le déclencheur est associé au pipeline Adfv2QuickStartPipeline. Pour associer plusieurs pipelines à un déclencheur, ajoutez d’autres sections pipelineReference.

    • Le pipeline du démarrage rapide prend deux valeurs parameters : inputPath et outputPath. Vous transmettez des valeurs pour ces paramètres à partir du déclencheur.

  2. Créez un déclencheur avec l’applet de commande Set-AzDataFactoryV2Trigger :

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Vérifiez que l’état du déclencheur est Stopped avec l’applet de commande Get-AzDataFactoryV2Trigger :

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Démarrez le déclencheur avec la cmdlet Start-AzDataFactoryV2Trigger :

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Vérifiez que l’état du déclencheur est Started avec l’applet de commande Get-AzDataFactoryV2Trigger :

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. Récupérez les exécutions du déclencheur dans Azure PowerShell avec l’applet de commande Get-AzDataFactoryV2TriggerRun. Pour obtenir les d’informations relatives aux exécutions du déclencheur, exécutez la commande suivante régulièrement. Mettez à jour les valeurs TriggerRunStartedAfter et TriggerRunStartedBefore pour qu’elles correspondent à celles de votre définition de déclencheur :

    Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
    

    Remarque

    L’heure de déclenchement des déclencheurs de planification est spécifiée dans l’horodateur UTC. TriggerRunStartedAfter et TriggerRunStartedBefore attendent également l’horodatage UTC.

    Pour surveiller les exécutions du déclencheur et du pipeline dans le portail Azure, consultez Surveiller des exécutions de pipelines.

Azure CLI

Cette section montre comment utiliser Azure CLI pour créer, démarrer et superviser un déclencheur de planification. Pour voir cet exemple en action, commencez par lire Démarrage rapide : créer une Azure Data Factory avec Azure CLI. Ensuite, suivez les étapes pour créer et démarrer un déclencheur de planification qui s’exécute toutes les 15 minutes. Le déclencheur est associé à un pipeline nommé Adfv2QuickStartPipeline, créé dans le cadre du démarrage rapide.

Prérequis

Exemple de code

  1. Dans votre répertoire de travail, créez un fichier JSON nommé MyTrigger.json avec les propriétés du déclencheur. Pour cet exemple, utilisez le contenu suivant :

    Important

    Avant d’enregistrer le fichier JSON, affectez l’heure UTC actuelle comme valeur de l’élément startTime. Définissez la valeur de l’élément endTime sur une (1) heure après l’heure UTC actuelle.

    {
        "name": "MyTrigger",
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Minute",
                "interval": 15,
                "startTime": "2017-12-08T00:00:00Z",
                "endTime": "2017-12-08T01:00:00Z",
                "timeZone": "UTC"
            }
        },
        "pipelines": [{
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "Adfv2QuickStartPipeline"
                },
                "parameters": {
                    "inputPath": "adftutorial/input",
                    "outputPath": "adftutorial/output"
                }
            }
        ]
    }
    

    Dans l’extrait de code JSON :

    • L’élément type du déclencheur est défini sur ScheduleTrigger.

    • L’élément frequency est défini sur Minute et l’élément interval est défini sur 15. Par conséquent, le déclencheur exécute le pipeline toutes les 15 minutes entre l’heure de début et l’heure de fin.

    • L’élément timeZone spécifie le fuseau horaire dans lequel le déclencheur est créé. Ce paramètre affecte à la fois startTime et endTime.

    • L’élément endTime est une (1) heure après la valeur de l’élément startTime. Le déclencheur exécute alors le pipeline 15 minutes, 30 minutes et 45 minutes après l’heure de début. N’oubliez pas de définir l’heure de début sur l’heure UTC actuelle et l’heure de fin sur une (1) heure après l’heure de début.

      Important

      Pour le fuseau horaire UTC, startTime et endTime doivent suivre le format yyyy-MM-ddTHH:mm:ssZ. Pour les autres fuseaux horaires, startTime et endTime suivent le format yyyy-MM-ddTHH:mm:ss.

      Conformément à la norme ISO 8601, le suffixe Z est utilisé pour marquer l’horodateur de DateHeure sur le fuseau horaire UTC et rendre le champ timeZone inutile. Si le suffixe Z est manquant pour le fuseau horaire UTC, le résultat est une erreur lors de l’activation du déclencheur.

    • Le déclencheur est associé au pipeline Adfv2QuickStartPipeline. Pour associer plusieurs pipelines à un déclencheur, ajoutez d’autres sections pipelineReference.

    • Le pipeline du démarrage rapide prend deux valeurs parameters : inputPath et outputPath. Vous transmettez des valeurs pour ces paramètres à partir du déclencheur.

  2. Créez un déclencheur en utilisant la commande az datafactory trigger create :

    az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory"  --name "MyTrigger" --properties @MyTrigger.json  
    
  3. Vérifiez que l’état du déclencheur est Stopped en utilisant la commande az datafactory trigger show :

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  4. Démarrez le déclencheur en utilisant la commande az datafactory trigger start :

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. Vérifiez que l’état du déclencheur est Started en utilisant la commande az datafactory trigger show :

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  6. Obtenez les exécutions du déclencheur dans Azure CLI en utilisant la commande az datafactory trigger-run query-by-factory. Pour obtenir plus d’informations sur les exécutions du déclencheur, exécutez la commande suivante régulièrement. Mettez à jour les valeurs last-updated-after et last-updated-before pour qu’elles correspondent à celles de votre définition de déclencheur :

    az datafactory trigger-run query-by-factory --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --filters operand="TriggerName" operator="Equals" values="MyTrigger" --last-updated-after "2017-12-08T00:00:00" --last-updated-before "2017-12-08T01:00:00"
    

    Remarque

    Les heures de déclenchement des déclencheurs de planification sont spécifiées dans l’horodateur UTC. last-updated-after et last-updated-before attendent aussi un horodateur UTC.

    Pour surveiller les exécutions du déclencheur et du pipeline dans le portail Azure, consultez Surveiller des exécutions de pipelines.

Kit de développement logiciel (SDK) .NET

Cette section montre comment utiliser le Kit de développement logiciel (SDK) .NET pour créer, démarrer et surveiller un déclencheur. Pour voir cet exemple en action, commencez par lire Démarrage rapide : créer une fabrique de données à l’aide du Kit de développement logiciel (SDK) .NET. Ensuite, ajoutez le code suivant à la méthode main : il crée et lance un déclencheur de planification qui s’exécute toutes les 15 minutes. Le déclencheur est associé à un pipeline nommé Adfv2QuickStartPipeline, créé dans le cadre du démarrage rapide.

Pour créer et lancer un déclencheur de planification qui s’exécute toutes les 15 minutes, ajoutez le code suivant à la méthode main :

            // Create the trigger
            Console.WriteLine("Creating the trigger");

            // Set the start time to the current UTC time
            DateTime startTime = DateTime.UtcNow;

            // Specify values for the inputPath and outputPath parameters
            Dictionary<string, object> pipelineParameters = new Dictionary<string, object>();
            pipelineParameters.Add("inputPath", "adftutorial/input");
            pipelineParameters.Add("outputPath", "adftutorial/output");

            // Create a schedule trigger
            string triggerName = "MyTrigger";
            ScheduleTrigger myTrigger = new ScheduleTrigger()
            {
                Pipelines = new List<TriggerPipelineReference>()
                {
                    // Associate the Adfv2QuickStartPipeline pipeline with the trigger
                    new TriggerPipelineReference()
                    {
                        PipelineReference = new PipelineReference(pipelineName),
                        Parameters = pipelineParameters,
                    }
                },
                Recurrence = new ScheduleTriggerRecurrence()
                {
                    // Set the start time to the current UTC time and the end time to one hour after the start time
                    StartTime = startTime,
                    TimeZone = "UTC",
                    EndTime = startTime.AddHours(1),
                    Frequency = RecurrenceFrequency.Minute,
                    Interval = 15,
                }
            };

            // Now, create the trigger by invoking the CreateOrUpdate method
            TriggerResource triggerResource = new TriggerResource()
            {
                Properties = myTrigger
            };
            client.Triggers.CreateOrUpdate(resourceGroup, dataFactoryName, triggerName, triggerResource);

            // Start the trigger
            Console.WriteLine("Starting the trigger");
            client.Triggers.Start(resourceGroup, dataFactoryName, triggerName);

Pour créer des déclencheurs dans un fuseau horaire différent, autre que UTC, les paramètres suivants sont nécessaires :

<<ClientInstance>>.SerializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.SerializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
<<ClientInstance>>.SerializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.DeserializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;

Pour surveiller une exécution du déclencheur, ajoutez le code suivant avant la dernière instruction Console.WriteLine de l’exemple :

            // Check that the trigger runs every 15 minutes
            Console.WriteLine("Trigger runs. You see the output every 15 minutes");

            for (int i = 0; i < 3; i++)
            {
                System.Threading.Thread.Sleep(TimeSpan.FromMinutes(15));
                List<TriggerRun> triggerRuns = client.Triggers.ListRuns(resourceGroup, dataFactoryName, triggerName, DateTime.UtcNow.AddMinutes(-15 * (i + 1)), DateTime.UtcNow.AddMinutes(2)).ToList();
                Console.WriteLine("{0} trigger runs found", triggerRuns.Count);

                foreach (TriggerRun run in triggerRuns)
                {
                    foreach (KeyValuePair<string, string> triggeredPipeline in run.TriggeredPipelines)
                    {
                        PipelineRun triggeredPipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, triggeredPipeline.Value);
                        Console.WriteLine("Pipeline run ID: {0}, Status: {1}", triggeredPipelineRun.RunId, triggeredPipelineRun.Status);
                        List<ActivityRun> runs = client.ActivityRuns.ListByPipelineRun(resourceGroup, dataFactoryName, triggeredPipelineRun.RunId, run.TriggerRunTimestamp.Value, run.TriggerRunTimestamp.Value.AddMinutes(20)).ToList();
                    }
                }
            }

Pour surveiller les exécutions du déclencheur et du pipeline dans le portail Azure, consultez Surveiller des exécutions de pipelines.

Kit de développement logiciel (SDK) Python

Cette section montre comment utiliser le Kit de développement logiciel (SDK) Python pour créer, démarrer et surveiller un déclencheur. Pour voir cet exemple en action, commencez par lire Démarrage rapide : créer une fabrique de données à l’aide du Kit de développement logiciel (SDK) Python. Ensuite, ajoutez le bloc de code suivant après le bloc de code monitor the pipeline run dans le script Python. Ce code crée un déclencheur de planification qui s’exécute toutes les 15 minutes entre l’heure de début et l’heure de fin spécifiées. Définissez la variable start_time sur l’heure UTC actuelle et la variable end_time sur une (1) heure après l’heure UTC actuelle.

    # Create a trigger
    tr_name = 'mytrigger'
    scheduler_recurrence = ScheduleTriggerRecurrence(frequency='Minute', interval='15',start_time='2017-12-12T04:00:00Z', end_time='2017-12-12T05:00:00Z', time_zone='UTC')
    pipeline_parameters = {'inputPath':'adftutorial/input', 'outputPath':'adftutorial/output'}
    pipelines_to_run = []
    pipeline_reference = PipelineReference('copyPipeline')
    pipelines_to_run.append(TriggerPipelineReference(pipeline_reference, pipeline_parameters))
    tr_properties = TriggerResource(properties=ScheduleTrigger(description='My scheduler trigger', pipelines = pipelines_to_run, recurrence=scheduler_recurrence))
    adf_client.triggers.create_or_update(rg_name, df_name, tr_name, tr_properties)

    # Start the trigger
    adf_client.triggers.start(rg_name, df_name, tr_name)

Pour surveiller les exécutions du déclencheur et du pipeline dans le portail Azure, consultez Surveiller des exécutions de pipelines.

Modèle Azure Resource Manager

Vous pouvez utiliser un modèle Azure Resource Manager pour créer un déclencheur. Pour obtenir des instructions pas à pas, consultez Créer une fabrique de données Azure à l’aide d’un modèle Azure Resource Manager.

Transmettre l’heure de début du déclencheur à un pipeline

Azure Data Factory version 1 prend en charge la lecture ou l’écriture des données partitionnées à l’aide des variables système SliceStart, SliceEnd, WindowStart et WindowEnd. Dans la version actuelle des pipelines Data Factory et Azure Synapse, vous pouvez obtenir ce comportement à l’aide d’un paramètre de pipeline. L’heure de début et l’heure planifiée du déclencheur sont définies comme étant la valeur du paramètre de pipeline. Dans l’exemple suivant, l’heure planifiée du déclencheur est transmise comme valeur au paramètre scheduledRunTime de pipeline :

"parameters": {
    "scheduledRunTime": "@trigger().scheduledTime"
}

Schéma JSON

La définition JSON suivante vous montre comment créer un déclencheur de planification avec une planification et une périodicité :

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Month>>,
        "interval": <<int>>,             // Optional, specifies how often to fire (default to 1)
        "startTime": <<datetime>>,
        "endTime": <<datetime - optional>>,
        "timeZone": "UTC"
        "schedule": {                    // Optional (advanced scheduling specifics)
          "hours": [<<0-23>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-59>>],
          "monthDays": [<<1-31>>],
          "monthlyOccurrences": [
               {
                    "day": <<Monday-Sunday>>,
                    "occurrence": <<1-5>>
               }
           ]
        }
      }
    },
   "pipelines": [
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "<Name of your pipeline>"
                },
                "parameters": {
                    "<parameter 1 Name>": {
                        "type": "Expression",
                        "value": "<parameter 1 Value>"
                    },
                    "<parameter 2 Name>" : "<parameter 2 Value>"
                }
           }
      ]
  }
}

Important

La propriété parameters est une propriété obligatoire de l’élément pipelines. Si votre pipeline n’accepte aucun paramètre, vous devez inclure une définition JSON vide pour la propriété parameters.

Vue d’ensemble du schéma

Le tableau suivant présente une vue d’ensemble globale des principaux éléments du schéma liés à la périodicité et à la planification d’un déclencheur.

Propriété JSON Description
startTime Une valeur date-heure. Pour les planifications simples, la valeur de la propriété startTime s’applique à la première occurrence. Pour les planifications complexes, le déclencheur ne démarre pas avant la valeur startTime spécifiée.
Pour le fuseau horaire UTC, le format est 'yyyy-MM-ddTHH:mm:ssZ'. Pour les autres fuseaux horaires, le format est yyyy-MM-ddTHH:mm:ss.
endTime La date et l’heure de fin du déclencheur. Le déclencheur ne s’exécute pas après la date et l’heure de fin spécifiées. La valeur de la propriété ne peut pas être dans le passé. Cette propriété est facultative.
Pour le fuseau horaire UTC, le format est 'yyyy-MM-ddTHH:mm:ssZ'. Pour les autres fuseaux horaires, le format est yyyy-MM-ddTHH:mm:ss.
timeZone Fuseau horaire dans lequel le déclencheur est créé. Ce paramètre affecte startTime, endTime et schedule. Consultez la liste des fuseaux horaires pris en charge.
recurrence Un objet de périodicité qui spécifie les règles de périodicité pour le déclencheur. L’objet de périodicité prend en charge les éléments frequency, interval, endTime, count et schedule. Lorsqu’un objet de périodicité est défini, l’élément frequency est requis. Les autres éléments de l’objet de périodicité sont facultatifs.
frequency L’unité de fréquence à laquelle le déclencheur se répète. Les valeurs prises en charge incluent minute,, hour,, day, week et month.
interval Un entier positif qui indique l’intervalle de la valeur frequency, qui détermine la fréquence d’exécution du déclencheur. Par exemple, si interval est 3 et frequency est week, le déclencheur se répète toutes les 3 semaines.
schedule La planification périodique du déclencheur. Un déclencheur dont la valeur frequency spécifiée modifie sa périodicité selon une planification périodique. La propriété schedule contient des modifications pour la périodicité basées sur des minutes, heures, jours de la semaine, jours du mois et numéro de semaine.

Important

Pour le fuseau horaire UTC, startTime et endTime doivent suivre le format yyyy-MM-ddTHH:mm:ssZ. Pour les autres fuseaux horaires, startTime et endTime suivez le format yyyy-MM-ddTHH:mm:ss.

Conformément à la norme ISO 8601, le suffixe Z est utilisé pour marquer l’horodateur de DateHeure sur le fuseau horaire UTC et rendre le champ timeZone inutile. Si le suffixe Z est manquant pour le fuseau horaire UTC, le résultat est une erreur lors de l’activation du déclencheur.

Valeurs par défaut, limites et exemples du schéma

Propriété JSON Type Obligatoire Valeur par défaut Valeurs valides Exemple
startTime Chaîne Oui None Dates-Heures ISO-8601 Pour le fuseau horaire UTC : "startTime" : "2013-01-09T09:30:00-08:00Z"
Pour les autres fuseaux horaires : "2013-01-09T09:30:00-08:00"
timeZone Chaîne Oui None Valeurs de fuseau horaire "UTC"
recurrence Object Oui None Objet de périodicité "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval Nombre Non 1 1 à 1 000 "interval":10
endTime Chaîne Oui Aucune Valeur date-heure représentant une heure dans le futur Pour le fuseau horaire UTC : "endTime" : "2013-02-09T09:30:00-08:00Z"
Pour les autres fuseaux horaires : "endTime" : "2013-02-09T09:30:00-08:00"
schedule Object Non None Objet de planification "schedule" : { "minute" : [30], "hour" : [8,17] }

Option de fuseau horaire

Voici quelques fuseaux horaires pris en charge pour les déclencheurs de planification.

Fuseau horaire Décalage UTC (n’appliquant pas l’heure d’été) Valeur timeZone Respect de l’heure d’été Format d’horodatage
Temps universel coordonné 0 UTC Non 'yyyy-MM-ddTHH:mm:ssZ'
Pacifique (PT) -8 Pacific Standard Time Oui 'yyyy-MM-ddTHH:mm:ss'
Centre (CT) -6 Central Standard Time Oui 'yyyy-MM-ddTHH:mm:ss'
Est (ET) -5 Eastern Standard Time Oui 'yyyy-MM-ddTHH:mm:ss'
Heure moyenne de Greenwich (GMT) 0 GMT Standard Time Oui 'yyyy-MM-ddTHH:mm:ss'
Heure standard d’Europe centrale +1 W. Europe Standard Time Oui 'yyyy-MM-ddTHH:mm:ss'
Inde (IST) +5:30 India Standard Time Non 'yyyy-MM-ddTHH:mm:ss'
Heure standard de Chine +8 China Standard Time Non 'yyyy-MM-ddTHH:mm:ss'

Cette liste est incomplète. Pour obtenir la liste complète des options de fuseau horaire, consultez la page de création du déclencheur dans le portail.

propriété startTime

Le tableau suivant vous montre comment la propriété startTime contrôle une exécution du déclencheur.

Valeur startTime Périodicité sans planification Périodicité avec planification
Heure de début dans le passé Calcule la prochaine exécution initiale après l’heure de début, puis l’exécute à l’heure indiquée.

Lance les exécutions suivantes à partir du calcul effectué lors de la dernière exécution.

Consultez l’exemple qui suit ce tableau.
Le déclencheur ne démarre pas avant l’heure de début spécifiée. La première occurrence dépend de la planification calculée à partir de l’heure de début.

Lance les exécutions suivantes à partir de la planification de périodicité.
Heure de début dans le futur ou au moment présent S’exécute une fois à l’heure de début spécifiée.

Lance les exécutions suivantes à partir du calcul effectué lors de la dernière exécution.
Le déclencheur ne démarre pas avant l’heure de début spécifiée. La première occurrence dépend de la planification calculée à partir de l’heure de début.

Lance les exécutions suivantes à partir de la planification de périodicité.

Voyons ce qui se passe lorsque l’heure de début se situe dans le passé, avec la valeur de périodicité définie mais pas la valeur de planification. Supposons que l’heure actuelle soit 2017-04-08 13:00, l’heure de début 2017-04-07 14:00, et que la périodicité soit tous les deux jours. (La valeur recurrence est définie en configurant la propriété frequency sur day et la propriété interval sur 2.) Notez que la valeur startTime se situe dans le passé et se produit avant l’heure actuelle.

Dans ces conditions, la première exécution aura lieu le 2017-04-09 à 14:00. Le moteur d'Azure Scheduler calcule les occurrences de l'exécution à partir de l'heure de début. Toutes les instances dans le passé sont ignorées. Le moteur utilise l'instance suivante qui se produit dans le futur. Dans ce scénario, la date de début étant le 2017-04-07 à 2:00pm, l’instance suivante surviendra 2 jours après cette date, c’est-à-dire le 2017-04-09 à 2:00pm.

La première heure d’exécution est la même si la valeur startTime est 2017-04-05 14:00 ou 2017-04-01 14:00. Après la première exécution, les exécutions suivantes sont calculées à l’aide de la planification. Par conséquent, les exécutions suivantes auront lieu le 2017-04-11 à 2:00pm, puis le 2017-04-13 à 2:00pm, puis le 2017-04-15 à 2:00pm, et ainsi de suite.

Enfin, lorsque les heures ou les minutes ne sont pas définies dans la planification d’un déclencheur, les heures ou minutes de la première exécution sont utilisées par défaut.

propriété de planification

L’utilisation d’une planification peut limiter le nombre d’exécutions du déclencheur. Par exemple, si un déclencheur avec une fréquence mensuelle est planifié pour s’exécuter uniquement le 31, le déclencheur ne s’exécute que durant les mois qui comptent un 31e jour.

Une planification peut également augmenter le nombre d’exécutions du déclencheur. Par exemple, un déclencheur avec une fréquence mensuelle planifiée pour s’exécuter le 1 et le 2 de chaque mois, s’exécute le premier et le second jour de chaque mois, plutôt qu’une fois par mois.

Si plusieurs éléments schedule sont spécifiés, l’ordre d’évaluation va du plus grand au plus petit paramètre de planification. L’évaluation commence par le numéro de semaine, puis le jour du mois, le jour de la semaine, l’heure et enfin, la minute.

Le tableau suivant décrit les éléments schedule en détail :

Élément JSON Description Valeurs valides
minutes Minutes d’exécution du déclencheur dans l’heure.
  • Integer
  • Tableau d’entiers
hours Heures d’exécution du déclencheur dans la journée.
  • Integer
  • Tableau d’entiers
weekDays Jours d’exécution du déclencheur dans la semaine. La valeur ne peut être spécifiée qu’avec une fréquence hebdomadaire uniquement.
  • Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
  • Tableau des valeurs de jour (la taille maximale du tableau est de 7).
  • Les valeurs de jour ne sont pas sensibles à la casse.
monthlyOccurrences Jours d’exécution du déclencheur dans le mois. La valeur ne peut être spécifiée qu’avec une fréquence mensuelle uniquement.
  • Tableau d’objets monthlyOccurrences : { "day": day, "occurrence": occurrence }.
  • L’attribut day est le jour de la semaine durant lequel le déclencheur s’exécute. Par exemple, une propriété monthlyOccurrences avec une valeur day de {Sunday} signifie tous les dimanches du mois. L'attribut day est obligatoire.
  • L’attribut occurrence est l’occurrence de day spécifié au cours du mois. Par exemple, une propriété monthlyOccurrences avec des valeurs day et occurrence de {Sunday, -1} signifie le dernier dimanche du mois. L'attribut occurrence est facultatif.
monthDays Jours d’exécution du déclencheur dans le mois. La valeur ne peut être spécifiée qu’avec une fréquence mensuelle uniquement.
  • Toute valeur <= -1 et >= -31
  • Toute valeur >= 1 et <= 31
  • Tableau de valeurs

Exemples de planifications de périodicité de déclencheur

Vous trouverez dans cette section plusieurs exemples de planifications de périodicité qui se focalisent sur l’objet schedule et ses éléments.

Les exemples supposent que la valeur de interval est 1 et que la valeur frequency est correcte en fonction de la définition de planification. Par exemple, vous ne pouvez pas avoir de valeur frequency de day et avoir également une modification monthDays dans l’objet schedule. Ces restrictions sont mentionnées dans le tableau de la section précédente.

Exemple Description
{"hours":[5]} Exécution à 5h00 tous les jours.
{"minutes":[15], "hours":[5]} Exécution à 5h15 tous les jours.
{"minutes":[15], "hours":[5,17]} Exécution à 5h15 et 17h15 tous les jours.
{"minutes":[15,45], "hours":[5,17]} Exécution à 5h15, 5h45, 17h15 et 17h45 tous les jours.
{"minutes":[0,15,30,45]} Exécution toutes les 15 minutes.
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} Exécution toutes les heures. Ce déclencheur s’exécute toutes les heures. Les minutes sont contrôlées par la valeur startTime, lorsqu’une valeur est spécifiée. Si aucune valeur n’est spécifiée, les minutes sont contrôlées par l’heure de création. Par exemple, si l’heure de début ou l’heure de création (selon le cas) est 00h25, le déclencheur sera exécuté à 00h25, 01h25, 02h25, ..., et 23h25.

Cette planification équivaut à avoir un déclencheur avec une valeur frequency de hour, une valeur interval de 1, et non schedule. Cette planification peut être utilisée avec différentes frequency valeurs pour interval créer d’autres déclencheurs. Par exemple, lorsque la valeur de frequency est month, la planification ne s’exécute qu’une seule fois par mois, plutôt que tous les jours, lorsque la valeur de frequency est day.
{"minutes":[0]} Exécution toutes les heures sur l’heure. Ce déclencheur s’exécute toutes les heures sur l’heure, en commençant à 00h00, 01h00, 02h00, et ainsi de suite.

Cette planification équivaut à un déclencheur avec une valeur frequency de hour et une valeur startTime de zéro minute, ou pas de schedule, mais une valeur de frequency de day. Si la valeur de frequency est week ou month, la planification s’exécute un jour par semaine ou un jour par mois uniquement, respectivement.
{"minutes":[15]} Exécution 15 minutes après l’heure, toutes les heures. Ce déclencheur s’exécute toutes les heures 15 minutes après l’heure, en commençant à 00h15, 01h15, 02h15, et ainsi de suite, jusqu’à 23h15.
{"hours":[17], "weekDays":["saturday"]} Exécution à 17h le samedi chaque semaine.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Exécution à 17h le lundi, le mercredi et le vendredi chaque semaine.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Exécution à 17h15 et 17h45 le lundi, le mercredi et le vendredi chaque semaine.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Exécution toutes les 15 minutes les jours de semaine.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Exécution toutes les 15 minutes les jours de semaine entre 9h00 et 16h45.
{"weekDays":["tuesday", "thursday"]} Exécution le mardi et le jeudi à l’heure de début spécifiée.
{"minutes":[0], "hours":[6], "monthDays":[28]} Exécution à 6h00 le 28e jour de chaque mois (en supposant que la valeur frequency est définie sur month).
{"minutes":[0], "hours":[6], "monthDays":[-1]} Exécution à 6h00 le dernier jour du mois. Pour exécuter un déclencheur le dernier jour du mois, utilisez -1 au lieu des jours 28, 29, 30 ou 31.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} Exécution à 6h00 le premier et le dernier jour de chaque mois.
{monthDays":[1,14]} Exécution le premier et le 14e jour de chaque mois à l’heure de début spécifiée.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Exécution le premier vendredi de chaque mois à 5h00.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Exécution le premier vendredi de chaque mois à l’heure de début spécifiée.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Exécutez le troisième vendredi à partir de la fin du mois, chaque mois, à l’heure de début spécifiée.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Exécution le premier et le dernier vendredi de chaque mois à 5h15.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Exécution le premier et le dernier vendredi de chaque mois à l’heure de début spécifiée.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Exécution le cinquième vendredi de chaque mois à l’heure de début spécifiée. S’il n’y a pas de cinquième vendredi dans un mois, le pipeline n’est pas exécuté, dans la mesure où il est planifié pour s’exécuter uniquement le cinquième vendredi du mois. Pour exécuter le déclencheur le dernier vendredi du mois, indiquez -1 au lieu de 5 pour la valeur occurrence.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Exécution toutes les 15 minutes le dernier vendredi du mois.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Exécution à 5h15, 5h45, 17h15 et 17h45 le troisième mercredi de chaque mois.