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.
Passez à l’onglet Modification de Data Factory ou à l’onglet Intégrer d’Azure Synapse.
Sélectionnez Déclencheur dans le menu, puis sélectionnez Nouveau/Modifier.
Sur la page Ajouter des déclencheurs, sélectionnez Choisir un déclencheur, puis Nouveau.
Sur la page Nouveau déclencheur :
Vérifiez que Planifier est sélectionné pour Type.
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).
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.
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.
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.
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.
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.
Dans la fenêtre Nouveau déclencheur, consultez le message d’avertissement, puis sélectionnez OK.
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.
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.
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
- Abonnement Azure. Si vous ne disposez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Azure PowerShell. Suivez les instructions de l'article Installer Azure PowerShell sur Windows avec PowerShellGet.
Exemple de code
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émentendTime
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 surScheduleTrigger
.L’élément
frequency
est défini surMinute
et l’élémentinterval
est défini sur15
. 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 foisstartTime
etendTime
.L’élément
endTime
est une (1) heure après la valeur de l’élémentstartTime
. 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
etendTime
doivent suivre le formatyyyy-MM-ddTHH:mm:ss
Z. Pour les autres fuseaux horaires,startTime
etendTime
suivez le formatyyyy-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 champtimeZone
inutile. Si le suffixeZ
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 sectionspipelineReference
.Le pipeline du démarrage rapide prend deux valeurs
parameters
:inputPath
etoutputPath
. Vous transmettez des valeurs pour ces paramètres à partir du déclencheur.
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"
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"
Démarrez le déclencheur avec la cmdlet Start-AzDataFactoryV2Trigger :
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
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"
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
etTriggerRunStartedBefore
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
etTriggerRunStartedBefore
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
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Exemple de code
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émentendTime
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 surScheduleTrigger
.L’élément
frequency
est défini surMinute
et l’élémentinterval
est défini sur15
. 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 foisstartTime
etendTime
.L’élément
endTime
est une (1) heure après la valeur de l’élémentstartTime
. 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 formatyyyy-MM-ddTHH:mm:ss
Z. Pour les autres fuseaux horaires,startTime
etendTime
suivent le formatyyyy-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 sectionspipelineReference
.Le pipeline du démarrage rapide prend deux valeurs
parameters
:inputPath
etoutputPath
. Vous transmettez des valeurs pour ces paramètres à partir du déclencheur.
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
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"
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"
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"
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
etlast-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:ss
Z. 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. |
|
hours |
Heures d’exécution du déclencheur dans la journée. |
|
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. |
|
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. |
|
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. |
|
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. |
Contenu connexe
- Pour plus d’informations sur les déclencheurs, consultez Exécution de pipelines et déclencheurs.
- Pour découvrir comment référencer les métadonnées d’un déclencheur dans le pipeline, consultez Référencer des métadonnées de déclencheur dans des exécutions de pipeline.