Eseguire una funzione di Azure in base a una pianificazione

Completato

L'esecuzione di una parte di logica in base a un intervallo stabilito è piuttosto comune. Si supponga di essere un proprietario del blog e si noti che i sottoscrittori non leggono i post più recenti. Si decide che l'azione più efficace consiste nell'inviare un messaggio di posta elettronica una volta a settimana per ricordare ai componenti di controllare il blog. Questa logica viene implementata creando un'app per le funzioni in Azure con un trigger timerper richiamare la funzione ogni settimana.

Che cos'è un trigger timer?

Un trigger timer è un trigger che esegue una funzione a un intervallo costante. Per creare un trigger timer, è necessario specificare due tipi di informazioni.

  1. Un nome del parametro timestamp, che è semplicemente un identificatore per accedere al trigger nel codice.
  2. Una Pianificazione, ovvero un'espressione CRON che imposta l'intervallo del timer.

Cos'è un espressione CRON?

Un'espressione CRON è una stringa costituita da sei campi che rappresentano un insieme di tempi.

L'ordine dei sei campi in Azure è: {second} {minute} {hour} {day} {month} {day of the week}.

Ad esempio, un'espressione CRON per creare un trigger che viene eseguito ogni cinque minuti potrebbe essere: 0 */5 * * * *

In un primo momento, questa stringa potrebbe sembrare confusa. Torneremo indietro ad analizzare questi concetti quando avremo approfondito le espressioni CRON.

Per creare un'espressione CRON, è necessario avere una conoscenza di base di alcuni caratteri speciali.

Carattere speciale Significato Esempio
* Consente di selezionare ogni valore in un campo Un asterisco "*" nel campo del giorno della settimana campo significa ogni giorno.
, Separa gli elementi in un elenco Una virgola "1,3" nel campo del giorno della settimana significa semplicemente lunedì (giorno 1) e mercoledì (giorno 3).
- Specifica un intervallo Un trattino "10-12" nel campo dell'ora indica un intervallo che include le ore 10, 11 e 12.
/ Specifica un incremento Una barra "*/10" nel campo minuti indica un incremento ogni 10 minuti.

Ora torniamo all'esempio dell'espressione CRON originale. Proviamo a capirla meglio suddividendola campo per campo.

0 */5 * * * *

Il primo campo rappresenta i secondi. Questo campo supporta i valori tra 0 e 59. Poiché il campo contiene il valore zero, viene selezionato il primo valore possibile, ovvero un secondo.

Il secondo campo rappresenta i minuti. Il valore "*/5" contiene due caratteri speciali. In primo luogo, l'asterisco (*) significa "selezionare ogni valore all'interno del campo". Poiché questo campo rappresenta i minuti, i valori possibili sono 0-59. Il secondo carattere speciale è la barra (/), che rappresenta un incremento. Quando si combinano insieme questi caratteri, ovvero per tutti i valori tra 0 e 59 è necessario selezionare ogni quinto valore. Un modo più semplice per segnalare che è semplicemente "ogni cinque minuti."

I quattro campi rimanenti rappresentano numericamente l'ora in un giorno di 24 ore, il giorno nel mese, il mese in un anno di 12 mesi e il giorno della settimana di 7 giorni. Un asterisco per questi campi indica di selezionare ogni possibile valore. In questo esempio, selezioniamo "ogni ora di ogni giorno del mese."

Quando si inseriscono tutti i campi contemporaneamente, l'espressione viene letta come "il primo secondo, di ogni cinque minuti di ogni ora, di ogni giorno, di ogni mese".

Come creare un trigger timer

È possibile creare un trigger timer nel portale di Azure. All'interno dell'app per le funzioni, selezionare trigger timer dall'elenco dei modelli di trigger. Immettere la logica che si desidera eseguire. Specificare un valore in Nome del parametro del timestamp e in Espressione CRON.

Questo modulo è incentrato sulla creazione dei trigger nel portale, ma è possibile crearli anche a livello di codice usando Core Tools, Visual Studio o Visual Studio Code.

Un trigger timer richiama il codice della funzione in base a una pianificazione coerente. Per definire la pianificazione di un trigger timer, si creerà un'espressione CRON, ovvero una stringa che rappresenta un insieme di tempi.