Condividi tramite


Creare un trigger per l'esecuzione di una pipeline in base a una pianificazione

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo fornisce informazioni sui trigger di pianificazione e sulla procedura per creare, avviare e monitorare un trigger di pianificazione. Per altri tipi di trigger, vedere Esecuzione e trigger di pipeline.

Quando si crea un trigger di pianificazione, si specifica una pianificazione come una data di inizio, una ricorrenza o una data di fine per il trigger e la si associa a una pipeline. Pipeline e trigger hanno una relazione molti-a-molti. Più trigger possono attivare una singola pipeline. Un singolo trigger può attivare più pipeline.

Le sezioni successive illustrano la procedura per creare un trigger di pianificazione in modi diversi.

Esperienza del portale di Azure Data Factory e Azure Synapse

È possibile creare un trigger di pianificazione per pianificare l'esecuzione periodica di una pipeline, ad esempio ogni ora o ogni giorno.

Nota

Per una procedura dettagliata e completa per creare una pipeline e un trigger di pianificazione, associare il trigger alla pipeline ed eseguire e monitorare la pipeline, vedere Avvio rapido: Creare una data factory tramite interfaccia utente di Data Factory.

  1. Passare alla scheda Modifica in Data Factory o alla scheda Integra in Azure Synapse.


  1. Scegliere Trigger dal menu e quindi selezionare New/Edit (Nuovo/Modifica).

    Screenshot che mostra il menu Nuovo trigger.

  2. Nella pagina Aggiungi trigger selezionare Scegli trigger e quindi selezionare Nuovo.

    Screenshot che mostra il riquadro Aggiungi trigger.

  3. Nella pagina Nuovo trigger:

    1. Verificare che sia selezionata l'opzione Pianificazione per Tipo.

    2. Specificare il valore datetime di inizio del trigger per Data di inizio. Per impostazione predefinita, è impostato sul valore datetime corrente nell'ora UTC (Coordinated Universal Time).

    3. Specificare il fuso orario in cui viene creato il trigger. L'impostazione del fuso orario si applica a Data di inizio, Data di finee Tempi di esecuzione pianificazione in Opzioni di ricorrenza avanzate. La modifica dell'impostazione Fuso orario non modifica automaticamente la data di inizio. Assicurarsi che la data di inizio sia corretta nel fuso orario specificato. Il Tempo di esecuzione pianificato del trigger viene considerato dopo la data di inizio. Assicurarsi che la data di inizio sia almeno 1 minuto precedente all'ora di esecuzione o che attivi la pipeline nella ricorrenza successiva.

      Nota

      Per i fusi orari che osservano l'ora legale, l'ora di attivazione viene modificata automaticamente due volte all'anno, se la ricorrenza è impostata su Giorni o superiore. Per rifiutare esplicitamente la modifica dell'ora legale, selezionare un fuso orario che non osserva l'ora legale, ad esempio UTC.

      La regolazione dell'ora legale si verifica solo per un trigger con la ricorrenza impostata su Giorni o superiore. Se il trigger è impostato su una frequenza di Ore o Minuti, continua a essere attivato a intervalli regolari.

    4. Specificare Ricorrenza per il trigger. Selezionare uno dei valori nell'elenco a discesa (Ogni minuto, Orario, Giornaliero, Settimanale o Mensile). Immettere il moltiplicatore nella casella di testo. Ad esempio, se si vuole impostare l'esecuzione del trigger una volta ogni 15 minuti, selezionare Ogni minuto e immettere 15 nella casella di testo.

    5. In Ricorrenza, se si sceglie Giorno/i, Settimana o Mese dall'elenco a discesa, è possibile visualizzare Opzioni di ricorrenza avanzate.

      Screenshot che mostra le opzioni avanzate di ricorrenza dei giorni, delle settimane e dei mesi.

    6. Per specificare una data e un'ora di fine, selezionare Specificare una data di fine. Specificare le informazioni Termina il e quindi selezionare OK.

      Ogni esecuzione della pipeline è associata a un costo. Se si stanno eseguendo test, si consiglia di verificare che la pipeline sia attivata solo un paio di volte. Assicurarsi tuttavia che il tempo specificato tra l'ora di pubblicazione e l'ora di fine sia sufficiente per l'esecuzione della pipeline. Il trigger viene applicato solo dopo la pubblicazione della soluzione, non quando si salva il trigger nell'interfaccia utente.

      Screenshot che mostra le impostazioni dei trigger.

      Screenshot che mostra le impostazioni del trigger per la data e l'ora di fine.

  4. Nella finestra Nuovo trigger selezionare nell'opzione Attivato e quindi selezionare OK. È possibile usare questa casella di controllo per disattivare il trigger in un secondo momento.

    Screenshot che mostra l'opzione Attivato.

  5. Nella finestra Nuovo trigger esaminare il messaggio di avviso e quindi selezionare OK.

    Screenshot che mostra la selezione del pulsante OK.

  6. Selezionare Pubblica tutto per pubblicare le modifiche. Finché non si pubblicano le modifiche, il trigger non avvia l'attivazione delle esecuzioni della pipeline.

    Screenshot che mostra il pulsante Pubblica tutto.

  7. Passare alla scheda Esecuzioni della pipeline a sinistra e quindi selezionare Aggiorna per aggiornare l'elenco. Verranno visualizzate le esecuzioni di pipeline attivate dal trigger pianificato. Notare i valori della colonna Attivato da. Se si usa l'opzione Attiva adesso, verrà visualizzata l'esecuzione del trigger manuale nell'elenco.


  1. Passare alla visualizzazione Esecuzioni del trigger>Pianificazione.


Azure PowerShell

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Questa sezione illustra come usare Azure PowerShell per creare, avviare e monitorare un trigger di pianificazione. Per vedere l'esempio in esecuzione, fare riferimento ad Avvio rapido: Creare una data factory con Azure PowerShell. Quindi, aggiungere il codice seguente al metodo principale, che crea e avvia un trigger di pianificazione che viene eseguito ogni 15 minuti. Il trigger è associato a una pipeline denominata Adfv2QuickStartPipeline, creata come parte della guida introduttiva.

Prerequisiti

Codice di esempio

  1. Creare un file JSON denominato MyTrigger.json nella cartella *C:\ADFv2QuickStartPSH* con il contenuto seguente:

    Importante

    Prima di salvare il file JSON, impostare il valore dell'elemento startTime sull'ora UTC corrente. Impostare il valore dell'elemento endTime su un'ora dopo l'ora UTC corrente.

    {
        "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"
                    }
                }
            ]
        }
    }
    

    Nel frammento di codice JSON:

    • L'elemento type del trigger è impostato su ScheduleTrigger.

    • L'elemento frequency è impostato su Minute e l'elemento interval è impostato su 15. Pertanto, il trigger esegue la pipeline ogni 15 minuti tra le ore di inizio e di fine.

    • L'elemento timeZone specifica il fuso orario in cui viene creato il trigger. Questa impostazione influisce su startTime e endTime.

    • L'elemento endTime corrisponde a un'ora dopo il valore dell'elemento startTime. Pertanto, il trigger esegue la pipeline 15 minuti, 30 minuti e 45 minuti dopo l'ora di inizio. Non dimenticare di aggiornare l'ora di inizio impostandola sull'ora UTC corrente e l'ora di fine impostandola su un'ora dopo l'ora di inizio.

      Importante

      Per il fuso orario UTC, startTime e endTime devono seguire il formato yyyy-MM-ddTHH:mm:ssZ. Per altri fusi orari, startTime e endTime seguire il formato yyyy-MM-ddTHH:mm:ss.

      In base allo standard ISO 8601, il suffisso Z viene usato per contrassegnare il valore datetime nel fuso orario UTC e rendere inutile il campo timeZone. Se manca il suffisso Z per il fuso orario UTC, il risultato è un errore al momento dell'attivazione del trigger.

    • Il trigger è associato alla pipeline Adfv2QuickStartPipeline. Per associare più pipeline a un trigger, aggiungere più sezioni pipelineReference.

    • La pipeline nell'avvio rapido accetta due valori parameters: inputPath e outputPath. I valori per questi parametri vengono passati dal trigger.

  2. Creare un trigger usando il cmdlet Set-AzDataFactoryV2Trigger:

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Confermare che lo stato del trigger viene interrotto usando il cmdlet Get-AzDataFactoryV2Trigger:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Avviare il trigger usando il cmdlet Start-AzDataFactoryV2Trigger:

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Confermare che lo stato del trigger viene avviato usando il cmdlet Get-AzDataFactoryV2Trigger:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. Ottenere le esecuzioni di trigger in Azure PowerShell usando il cmdlet Get-AzDataFactoryV2TriggerRun. Per ottenere informazioni sulle esecuzioni di trigger, eseguire periodicamente il comando seguente. Aggiornare i valori TriggerRunStartedAfter e TriggerRunStartedBefore in modo che corrispondano ai valori nella definizione del trigger:

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

    Nota

    L'ora dei trigger di pianificazione viene specificata nel timestamp UTC. Anche TriggerRunStartedAfter e TriggerRunStartedBefore prevedono il timestamp UTC.

    Per monitorare le esecuzioni di trigger e di pipeline nel portale di Azure, vedere Monitorare le esecuzioni di pipeline.

Interfaccia della riga di comando di Azure

Questa sezione illustra come usare l'interfaccia della riga di comando di Azure per creare, avviare e monitorare un trigger di pianificazione. Per vedere questo esempio funzionante, vedere prima di tutto Guida introduttiva: Creare un'istanza di Azure Data Factory usando l'interfaccia della riga di comando di Azure. Seguire quindi i passaggi per creare e avviare un trigger di pianificazione che viene eseguito ogni 15 minuti. Il trigger è associato a una pipeline denominata Adfv2QuickStartPipeline, creata come parte della guida introduttiva.

Prerequisiti

Codice di esempio

  1. Nella directory di lavoro creare un file JSON denominato MyTrigger.json con le proprietà del trigger. Per questo esempio, usare il contenuto seguente:

    Importante

    Prima di salvare il file JSON, impostare il valore dell'elemento startTime sull'ora UTC corrente. Impostare il valore dell'elemento endTime su un'ora dopo l'ora UTC corrente.

    {
        "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"
                }
            }
        ]
    }
    

    Nel frammento di codice JSON:

    • L'elemento type del trigger è impostato su ScheduleTrigger.

    • L'elemento frequency è impostato su Minute e l'elemento interval è impostato su 15. Pertanto, il trigger esegue la pipeline ogni 15 minuti tra le ore di inizio e di fine.

    • L'elemento timeZone specifica il fuso orario in cui viene creato il trigger. Questa impostazione influisce su startTime e endTime.

    • L'elemento endTime corrisponde a un'ora dopo il valore dell'elemento startTime. Pertanto, il trigger esegue la pipeline 15 minuti, 30 minuti e 45 minuti dopo l'ora di inizio. Non dimenticare di aggiornare l'ora di inizio impostandola sull'ora UTC corrente e l'ora di fine impostandola su un'ora dopo l'ora di inizio.

      Importante

      Per il fuso orario UTC, startTime ed endTime devono seguire il formato yyyy-MM-ddTHH:mm:ssZ. Per altri fusi orari, startTime e endTime seguire il formato yyyy-MM-ddTHH:mm:ss.

      In base allo standard ISO 8601, il suffisso Z viene usato per contrassegnare il valore datetime nel fuso orario UTC e rendere inutile il campo timeZone. Se il suffisso Z manca per il fuso orario UTC, il risultato è un errore al momento dell'attivazione del trigger.

    • Il trigger è associato alla pipeline Adfv2QuickStartPipeline. Per associare più pipeline a un trigger, aggiungere più sezioni pipelineReference.

    • La pipeline nell'avvio rapido accetta due valori parameters: inputPath e outputPath. I valori per questi parametri vengono passati dal trigger.

  2. Creare un trigger usando il comando az datafactory trigger create:

    az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory"  --name "MyTrigger" --properties @MyTrigger.json  
    
  3. Verificare che lo stato del trigger sia Arrestato usando il comando az datafactory trigger show:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  4. Avviare il trigger usando il comando az datafactory trigger start:

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. Verificare che lo stato del trigger sia Avviato usando il comando az datafactory trigger show:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  6. Ottenere l'esecuzione del trigger nell'interfaccia della riga di comando di Azure usando il comando az datafactory trigger-run query-by-factory. Per ottenere informazioni sulle esecuzioni di trigger, eseguire periodicamente il comando seguente. Aggiornare i valori last-updated-after e last-updated-before in modo che corrispondano ai valori nella definizione del trigger:

    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"
    

    Nota

    Le ore dei trigger di pianificazione vengono specificate nel timestamp UTC. Anche last-updated-after e last-updated-before si aspettano il timestamp UTC.

    Per monitorare le esecuzioni di trigger e di pipeline nel portale di Azure, vedere Monitorare le esecuzioni di pipeline.

.NET SDK

Questa sezione illustra come usare .NET SDK per creare, avviare e monitorare un trigger. Per vedere l'esempio in esecuzione, fare riferimento ad Avvio rapido: Creare una data factory con .NET SDK. Quindi, aggiungere il codice seguente al metodo principale, che crea e avvia un trigger di pianificazione che viene eseguito ogni 15 minuti. Il trigger è associato a una pipeline denominata Adfv2QuickStartPipeline, creata come parte della guida introduttiva.

Per creare e avviare un trigger di pianificazione che viene eseguito ogni 15 minuti, aggiungere il codice seguente al metodo principale:

            // 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);

Per creare trigger in un fuso orario diverso, ad eccezione dell'ora UTC, sono necessarie le impostazioni seguenti:

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

Per monitorare l'esecuzione di un trigger, aggiungere il codice seguente prima dell'ultima istruzione Console.WriteLine nell'esempio:

            // 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();
                    }
                }
            }

Per monitorare le esecuzioni di trigger e di pipeline nel portale di Azure, vedere Monitorare le esecuzioni di pipeline.

Python SDK

Questa sezione illustra come usare Python SDK per creare, avviare e monitorare un trigger. Per vedere l'esempio in esecuzione, fare riferimento ad Avvio rapido: Creare una data factory con Python SDK. Aggiungere quindi il blocco di codice seguente dopo il blocco di codice monitor the pipeline run nello script Python. Questo codice crea un trigger di pianificazione che viene eseguito ogni 15 minuti tra le ore di inizio e di fine specificate. Aggiornare la variabile start_time impostandola sull'ora UTC corrente e la variabile end_time impostandola su un'ora dopo l'ora UTC corrente.

    # 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)

Per monitorare le esecuzioni di trigger e di pipeline nel portale di Azure, vedere Monitorare le esecuzioni di pipeline.

Modello di Azure Resource Manager

È possibile usare un modello di Azure Resource Manager per creare un trigger. Per istruzioni dettagliate, vedere Creare una data factory di Azure usando un modello di Azure Resource Manager.

Passare l'ora di inizio del trigger a una pipeline

Azure Data Factory versione 1 supporta la lettura o la scrittura di dati partizionati usando le variabili di sistema: SliceStart, SliceEnd, WindowStart e WindowEnd. Nella versione corrente di Data Factory e delle pipeline di Azure Synapse è possibile ottenere questo comportamento usando un parametro della pipeline. L'ora di inizio e l'ora pianificata per il trigger vengono impostate come valore per il parametro della pipeline. Nell'esempio seguente l'ora pianificata per il trigger viene passata come valore al parametro scheduledRunTime della pipeline:

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

Schema JSON

La definizione JSON seguente illustra come creare un trigger di pianificazione con pianificazione e ricorrenza:

{
  "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>"
                }
           }
      ]
  }
}

Importante

La proprietà parameters è una proprietà obbligatoria dell'elemento pipelines. Se la pipeline non accetta parametri, è necessario includere una definizione JSON vuota per la proprietà parameters.

Panoramica dello schema

La tabella seguente fornisce una panoramica generale degli elementi dello schema principali correlati alla ricorrenza e alla pianificazione di un trigger.

Proprietà JSON Descrizione
startTime Valore di data e ora. Per le pianificazioni semplici, il valore della proprietà startTime si applica alla prima occorrenza. Per le pianificazioni complesse, il trigger viene attivato non prima del valore startTime specificato.
Per il fuso orario UTC, il formato è 'yyyy-MM-ddTHH:mm:ssZ'. Per altri fusi orari, il formato è yyyy-MM-ddTHH:mm:ss.
endTime Data e ora di fine per il trigger. Il trigger non viene eseguito dopo la data e l'ora di fine specificate. Il valore della proprietà non può essere nel passato. Questa proprietà è facoltativa.
Per il fuso orario UTC, il formato è 'yyyy-MM-ddTHH:mm:ssZ'. Per altri fusi orari, il formato è yyyy-MM-ddTHH:mm:ss.
timeZone Fuso orario in cui viene creato il trigger. Questa impostazione influisce su startTime, endTime e schedule. Vedere un elenco dei fusi orari supportati.
recurrence Oggetto recurrence che specifica le regole di ricorrenza per il trigger. L'oggetto ricorrenza supporta gli elementi frequency, interval, endTime, count e schedule. Quando viene definito un oggetto ricorrenza, l'elemento frequency è obbligatorio. Gli altri elementi dell'oggetto recurrence sono facoltativi.
frequency Unità di frequenza con cui il trigger si ripete. Nei valori supportati sono inclusi: minute,hour,day, week e month.
interval Numero intero positivo indicante l'intervallo per il valore frequency, che determina la frequenza con cui viene eseguito il trigger. Ad esempio, se interval è 3 e frequency è week, il trigger si ripete ogni 3 settimane.
schedule Pianificazione della ricorrenza per il trigger. Un trigger con un valore frequency specificato modifica la ricorrenza in base a una pianificazione di ricorrenza. La proprietà schedule contiene modifiche per la ricorrenza basate su minuti, ore, giorni della settimana, giorni del mese e numero della settimana.

Importante

Per il fuso orario UTC, startTime e endTime devono seguire il formato yyyy-MM-ddTHH:mm:ssZ. Per altri fusi orari, startTime e endTime seguire il formato yyyy-MM-ddTHH:mm:ss.

In base allo standard ISO 8601, il suffisso Z viene usato per contrassegnare il valore datetime nel fuso orario UTC e rendere inutile il campo timeZone. Se il suffisso Z manca per il fuso orario UTC, il risultato è un errore al momento dell'attivazione del trigger.

Impostazioni predefinite dello schema, limiti ed esempi

Proprietà JSON Type Obbligatorio Valore predefinito Valori validi Esempio
startTime Stringa None Date-Ore ISO-8601 Per il fuso orario UTC: "startTime" : "2013-01-09T09:30:00-08:00Z"
Per altri fusi orari: "2013-01-09T09:30:00-08:00"
timeZone Stringa None Valori del fuso orario "UTC"
recurrence Object None Oggetto ricorrenza "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval Numero No 1 Da 1 a 1.000 "interval":10
endTime Stringa None Valore data-ora che rappresenta un momento futuro Per il fuso orario UTC: "endTime" : "2013-02-09T09:30:00-08:00Z"
Per altri fusi orari: "endTime" : "2013-02-09T09:30:00-08:00"
schedule Object No None Oggetto pianificazione "schedule" : { "minute" : [30], "hour" : [8,17] }

Opzione fuso orario

Ecco alcuni fusi orari supportati per i trigger di pianificazione.

Fuso orario Differenza dall'ora UTC (senza ora legale) Valore timeZone Osservare l'ora legale Formato timestamp
Coordinated Universal Time 0 UTC No 'yyyy-MM-ddTHH:mm:ssZ'
Pacific Time (PT) -8 Pacific Standard Time 'yyyy-MM-ddTHH:mm:ss'
Central Time (CT) -6 Central Standard Time 'yyyy-MM-ddTHH:mm:ss'
Eastern Time (ET) -5 Eastern Standard Time 'yyyy-MM-ddTHH:mm:ss'
Greenwich Mean Time (GMT) 0 GMT Standard Time 'yyyy-MM-ddTHH:mm:ss'
Ora solare Europa Centrale 1+ W. Europe Standard Time 'yyyy-MM-ddTHH:mm:ss'
India Standard Time (IST) +5:30 India Standard Time No 'yyyy-MM-ddTHH:mm:ss'
Ora solare Cina 8+ China Standard Time No 'yyyy-MM-ddTHH:mm:ss'

Questo elenco è incompleto. Per un elenco completo delle opzioni del fuso orario, vedere la pagina di creazione del trigger nel portale.

Proprietà startTime

La tabella seguente illustra come la proprietà startTime controlla l'esecuzione di un trigger.

valore startTime Ricorrenza senza pianificazione Ricorrenza con pianificazione
Ora di inizio nel passato Calcola l'ora della prima esecuzione futura dopo l'ora di inizio e avvia l'esecuzione in corrispondenza di tale ora.

Avvia le esecuzioni successive basandosi sul calcolo dall'ultima esecuzione.

Vedere l'esempio sotto a questa tabella.
Il trigger viene avviato non prima dell'ora di inizio specificata. La prima occorrenza è basata sulla pianificazione calcolata dall'ora di inizio.

Avvia le esecuzioni successive in base alla pianificazione di ricorrenza.
Ora di inizio nel futuro o nel presente Avvia l'esecuzione una sola volta all'ora di inizio specificata.

Avvia le esecuzioni successive basandosi sul calcolo dall'ultima esecuzione.
Il trigger viene avviato non prima dell'ora di inizio specificata. La prima occorrenza è basata sulla pianificazione calcolata dall'ora di inizio.

Avvia le esecuzioni successive in base alla pianificazione di ricorrenza.

È possibile esaminare uno scenario in cui l'ora di inizio è nel passato, con una ricorrenza, ma nessuna pianificazione. Si supponga che l'ora corrente sia 2017-04-08 13:00, l'ora di inizio sia 2017-04-07 14:00 e la ricorrenza sia ogni due giorni. Il valore recurrence viene definito impostando la proprietà frequency su day e la proprietà interval su 2. Si noti che il valore startTime è nel passato e si verifica prima dell'ora corrente.

In queste condizioni, la prima esecuzione avviene alle 2017-04-09 il 14:00. Il motore dell'utilità di pianificazione calcola le occorrenze dall'ora di inizio dell'esecuzione. Vengono eliminate tutte le istanze in passato. Il motore utilizza l'istanza successiva che si verifica in futuro. In questo scenario l'ora di inizio è 2017-04-07 alle 2:00pm, quindi l'istanza successiva viene eseguita due giorni dopo tale orario, ovvero il giorno 2017-04-09 alle 2:00pm.

La prima volta di esecuzione è uguale anche se il valore di startTime è 2017-04-05 14:00 o 2017-04-01 14:00. Dopo la prima esecuzione, le esecuzioni successive vengono calcolate in base alla pianificazione. Le esecuzioni successive vengono quindi avviate il 2017-04-11 alle 2:00pm, poi il 2017-04-13 alle 2:00pm, quindi il 2017-04-15 alle 2:00pm e così via.

Quando infine le ore o i minuti non sono impostati nella pianificazione di un trigger, le ore o i minuti della prima esecuzione vengono usati come impostazioni predefinite.

Proprietà schedule

L'uso di una pianificazione può limitare il numero di esecuzioni di trigger. Se ad esempio la pianificazione di un trigger con frequenza mensile prevede l'esecuzione solo il giorno 31, il trigger viene eseguito solo nei mesi che includono 31 giorni.

Un oggetto schedule può anche aumentare il numero di esecuzioni di un trigger. Ad esempio, un trigger con una frequenza mensile la cui esecuzione è pianificata per i giorni 1 e 2 del mese viene eseguito il primo e il secondo giorno del mese, invece che una volta al mese.

Se vengono specificati più elementi schedule, l'ordine di valutazione è dall'impostazione della pianificazione più grande alla più piccola. La valutazione inizia con il numero della settimana, quindi prosegue con il giorno del mese, il giorno della settimana, l'ora e infine il minuto.

Nella tabella seguente vengono descritti in dettaglio gli elementi schedule.

Elemento JSON Descrizione Valori validi
minutes Minuti dell'ora in cui verrà eseguito il trigger.
  • Intero
  • Matrice di numeri interi
hours Ore del giorno in cui verrà eseguito il trigger.
  • Intero
  • Matrice di numeri interi
weekDays Giorni della settimana in cui verrà eseguito il trigger. Il valore può essere specificato solo con una frequenza settimanale.
  • Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato, Domenica.
  • Matrice di valori relativi ai giorni (la dimensione massima della matrice è 7).
  • I valori dei giorni non fanno distinzione tra maiuscole e minuscole.
monthlyOccurrences Giorni del mese in cui verrà eseguito il trigger. Il valore può essere specificato solo con una frequenza mensile.
  • Matrice di oggetti monthlyOccurrences: { "day": day, "occurrence": occurrence }.
  • L'attributo day è il giorno della settimana in cui verrà eseguito il trigger. Ad esempio, una proprietà monthlyOccurrences con un valore day uguale a {Sunday} indica ogni domenica del mese. L'attributo day è obbligatorio.
  • L'attributo occurrence indica l'occorrenza del day specificato durante il mese. Ad esempio, una proprietà monthlyOccurrences con valori day e occurrence di {Sunday, -1} indica l'ultima domenica del mese. L'attributo occurrence è facoltativo.
monthDays Giorno del mese in cui verrà eseguito il trigger. Il valore può essere specificato solo con una frequenza mensile.
  • Qualsiasi valore <= 1 e >= 31
  • Qualsiasi valore >= 1 e <= 31
  • Matrice di valori

Esempi di pianificazioni di ricorrenza del trigger

Questa sezione fornisce esempi di pianificazioni di ricorrenza con attenzione all'oggetto schedule e ai relativi elementi.

Gli esempi presumono che il valore interval sia 1 e che il valore frequency sia corretto in base alla definizione della pianificazione. Ad esempio, non è possibile avere un valore frequency di day e avere anche una modifica monthDays nell'oggetto schedule. Restrizioni come queste sono indicate nella tabella nella sezione precedente.

Esempio Descrizione
{"hours":[5]} Viene eseguito alle 5:00 ogni giorno.
{"minutes":[15], "hours":[5]} Viene eseguito alle 05:15 ogni giorno.
{"minutes":[15], "hours":[5,17]} Viene eseguito alle 05:15 e alle 17:15 ogni giorno.
{"minutes":[15,45], "hours":[5,17]} Viene eseguito alle 05:15, alle 05:45, alle 17:15 e alle 17:45 ogni giorno.
{"minutes":[0,15,30,45]} Viene eseguito ogni 15 minuti.
{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]} Viene eseguito ogni ora. Il trigger viene eseguito ogni ora. I minuti vengono controllati dal valore startTime, se specificato. Se non è specificato un valore, i minuti vengono controllati dall'ora di creazione. Se ad esempio l'ora di inizio o l'ora di creazione (qualunque delle due si applichi) è 12:25, il trigger viene eseguito alle 00:25, 01:25, 02:25, ..., 23:25.

Questa pianificazione equivale ad avere un trigger con un valore frequency di hour, un valore interval di 1 e nessun schedule. Questa pianificazione può essere usata con diversi valori di frequency e interval per creare altri trigger. Quando ad esempio il valore frequency è month, la pianificazione viene eseguita solo una volta al mese, invece che ogni giorno, quando il valore frequency è day.
{"minutes":[0]} Viene eseguito ogni ora all'inizio dell'ora. Questo trigger viene eseguito ogni ora con l'ora che inizia alle 00:00, 01:00, 02:00 e così via.

Questa pianificazione equivale a un trigger con un valore frequency di hour e un valore startTime pari a zero minuti oppure nessun schedule ma un valore frequency di day. Se il valore frequency è week o month, la pianificazione viene eseguita rispettivamente un giorno alla settimana o un giorno al mese.
{"minutes":[15]} Viene eseguito 15 minuti dopo l'inizio di ogni ora. Questo trigger viene eseguito ogni ora, 15 minuti dopo l'inizio dell'ora a partire dalle 00:15, 01:15, 02:15 e così via e terminando alle 23:15.
{"hours":[17], "weekDays":["saturday"]} Viene eseguito alle 17:00 di ogni sabato.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Viene eseguito alle 17:00 di ogni lunedì, mercoledì e venerdì.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Viene eseguito alle 17:15 e alle 17:45 di ogni lunedì, mercoledì e venerdì.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Viene eseguito ogni 15 minuti nei giorni feriali.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Viene eseguito ogni 15 minuti nei giorni feriali tra le 09:00 e le 16:45.
{"weekDays":["tuesday", "thursday"]} Viene eseguito ogni martedì e giovedì all'ora di inizio specificata.
{"minutes":[0], "hours":[6], "monthDays":[28]} Eseguire alle 6:00 il 28° giorno di ogni mese (presupponendo un valore frequency di month).
{"minutes":[0], "hours":[6], "monthDays":[-1]} Viene eseguito alle 06:00 dell'ultimo giorno di ogni mese. Per eseguire un trigger l'ultimo giorno del mese, usare -1 invece del giorno 28, 29, 30 o 31.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} Viene eseguito alle 06:00 il primo e l'ultimo giorno di ogni mese.
{monthDays":[1,14]} Viene eseguito il primo e il quattordicesimo giorno di ogni mese all'ora di inizio specificata.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Viene eseguito il primo venerdì di ogni mese alle 05:00.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Viene eseguito il primo venerdì di ogni mese all'ora di inizio specificata.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Viene eseguito il terzultimo venerdì di ogni mese, all'ora di inizio specificata.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Viene eseguito il primo e l'ultimo venerdì di ogni mese alle 05:15.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Viene eseguito il primo e l'ultimo venerdì di ogni mese all'ora di inizio specificata.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Viene eseguito il quinto venerdì di ogni mese all'ora di inizio specificata. Quando non ci sono cinque venerdì nel mese, la pipeline non viene eseguita, perché è pianificata per essere eseguita solo il quinto venerdì del mese. È consigliabile usare -1 invece di 5 per il valore occurrence per eseguire il trigger l'ultimo venerdì del mese.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Viene eseguito ogni 15 minuti l'ultimo venerdì del mese.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Viene eseguito alle 05:15, 05:45, 17:15 e 17:45 il terzo mercoledì di ogni mese.