Executar uma Função do Azure conforme agendado

Concluído

É comum executar uma parte lógica num intervalo definido. Imagine que você é proprietário de um blog e percebe que seus assinantes não estão lendo suas postagens mais recentes. Decide que a melhor ação é enviar um e-mail uma vez por semana para lembrá-los de irem ao seu blogue. Você implementa essa lógica criando um aplicativo de função no Azure com um gatilho de temporizador para invocar sua função semanalmente.

O que é um acionador de temporizador?

Um acionador de temporizador é um acionador que executa uma função num intervalo consistente. Para criar um acionador de temporizador, terá de conceder dois conjuntos de informações.

  1. Um Nome do parâmetro do carimbo de data/hora, que é simplesmente um identificador para aceder ao acionador no código.
  2. Uma Agenda, que é uma expressão CRON que define o intervalo do temporizador.

O que é uma expressão CRON?

Uma expressão CRON é uma cadeia de carateres que consiste em seis campos que representam um conjunto de horas.

A ordem dos seis campos no Azure é: {second} {minute} {hour} {day} {month} {day of the week}.

Por exemplo, uma expressão CRON para criar um gatilho que é executado a cada cinco minutos se parece com: 0 */5 * * * *

A princípio, essa cadeia de caracteres pode parecer confusa. Vamos voltar atrás e dividir estes conceitos quando tivermos uma análise mais profunda sobre as expressões CRON.

Para criar uma expressão CRON, tem de ter uma compreensão básica de alguns dos carateres especiais.

Caráter especial Significado Exemplo
* Seleciona todos os valores num campo Um asterisco "*" no campo do dia da semana significa todos os dias.
, Separa os itens numa lista Uma vírgula "1,3" no campo do dia da semana significa apenas Segundas-feiras (dia 1) e Quartas-feiras (dia 3).
- Especifica um intervalo Um hífen "10-12" no campo de hora significa um intervalo que inclui as horas 10, 11 e 12.
/ Especifica um incremento Uma barra "*/10" no campo dos minutos significa um incremento de cada 10 minutos.

Agora iremos voltar para o exemplo de expressão CRON original. Vamos tentar compreender melhor ao segmentar campo por campo.

0 */5 * * * *

O primeiro campo representa segundos. Este campo suporta os valores 0-59. Como o campo contém um zero, seleciona o primeiro valor possível, que é um segundo.

O segundo campo representa minutos. O valor "*/5" contém dois carateres especiais. Primeiro, o asterisco (*) significa "selecionar todos os valores dentro do campo". Como este campo representa minutos, os valores possíveis são 0-59. O segundo caráter especial é a barra (/), que representa um incremento. Quando combina estes carateres em conjunto, significa para todos os valores 0-59, e deverá selecionar cada quinto valor. Uma forma mais fácil de dizer isso será dizer simplesmente“a cada cinco minutos”.

Os quatro campos restantes representam numericamente a hora em um dia de 24 horas, o dia no mês, o mês em um ano de 12 meses e o dia da semana de 7 dias. Um asterisco para estes campos significa para selecionar todos os valores possíveis. Neste exemplo, selecionamos "cada hora de cada dia do mês."

Quando se juntam todos os campos, a expressão é lida como "o primeiro segundo de cada cinco minutos de cada hora, de cada dia, de cada mês".

Como criar um acionador de temporizador

Pode criar um acionador de temporizador no portal do Azure. No seu aplicativo de função, selecione gatilho de temporizador na lista de modelos de gatilho. Introduza a lógica que pretende executar. Indique um Nome do parâmetro carimbo de data/hora e a Expressão CRON.

Neste módulo, nos concentraremos na criação de gatilhos no portal, mas você também pode criar gatilhos programaticamente usando Core Tools, Visual Studio ou Visual Studio Code.

Um gatilho de temporizador invoca o código da função em um cronograma consistente. Para definir a agenda para um acionador de temporizador, criamos uma expressão CRON, que é uma cadeia de carateres que representa um conjunto de horas.