Executar uma Função do Azure de acordo com um agendamento
É comum executar uma parte da lógica em um intervalo definido. Imagine que você é um proprietário de blog e percebeu que seus assinantes não estão lendo suas postagens mais recentes. Você decide que a melhor ação é enviar um email uma vez por semana para lembrá-los de conferir seu blog. Implemente essa lógica criando um aplicativo de funções no Azure com um gatilho de temporizador para invocar sua função semanalmente.
O que é um gatilho de temporizador?
Um gatilho de temporizador é um gatilho que executa uma função em um intervalo consistente. Para criar um gatilho de temporizador, você precisa fornecer dois tipos de informação.
- Um Nome do parâmetro de carimbo de data/hora, que é simplesmente um identificador para acessar o gatilho no código.
- Um Agendamento, que é uma expressão CRON que define o intervalo do temporizador.
O que é uma expressão CRON?
Uma expressão CRON é uma cadeia de caracteres que consiste em seis campos que representam um conjunto de horários.
A ordem dos seis campos no Azure é: {second} {minute} {hour} {day} {month} {day of the week}
.
Por exemplo, uma expressão CRON usada para criar um gatilho que é executado a cada cinco minutos é semelhante a esta: 0 */5 * * * *
A princípio, essa cadeia de caracteres pode parecer confusa. Voltaremos e detalharemos esses conceitos quando analisarmos as expressões CRON com mais detalhes.
Para criar uma expressão CRON, você precisa ter uma compreensão básica de alguns dos caracteres especiais.
Caractere especial | Significado | Exemplo |
---|---|---|
* | Seleciona todos os valores de um campo | Um asterisco "*" no campo de dia da semana significa todos os dias. |
, | Separa os itens de uma lista | Uma vírgula "1,3" no campo de 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 de minutos significa um incremento de intervalos de 10 minutos. |
Agora, voltaremos para o exemplo de expressão CRON original. Vamos tentar entender melhor detalhando campo por campo.
0 */5 * * * *
O primeiro campo representa os segundos. Esse campo dá suporte aos valores 0-59. Como o campo contém um zero, ele seleciona o primeiro valor possível, que é um segundo.
O segundo campo representa os minutos. O valor "*/5" contém dois caracteres especiais. Primeiro, o asterisco (*) significa "selecionar todos os valores dentro do campo". Como esse campo representa minutos, os valores possíveis são 0-59. O segundo caractere especial é a barra (/), que representa um incremento. Quando você combina esses caracteres, isso significa que cada quinto valor é selecionado para todos os valores 0-59. É mais fácil dizer simplesmente "a cada cinco minutos".
Os quatro campos restantes representam numericamente a hora em um dia de 24 horas, um dia no mês, um mês em um ano de 12 meses e um dia da semana de 7 dias. Um asterisco nesses campos significa a seleção de todos os valores possíveis. Neste exemplo, selecionaremos "cada hora de todos os dias de todos os meses".
Quando você coloca todos os campos juntos, a expressão é lida como "no primeiro segundo do quinto minuto de cada hora, de todos os dias, de todos os meses".
Como criar um gatilho de temporizador
Você pode criar um gatilho de temporizador no portal do Azure. No seu aplicativo de funções do Azure, selecione gatilho de temporizador na lista de modelos de gatilho. Insira a lógica que deseja executar. Forneça um Nome do parâmetro de carimbo de data/hora e a expressão CRON.
Nesse módulo, o foco será a criação de gatilhos no portal, mas você também pode criá-los programaticamente usando o Core Tools, o Visual Studio ou o Visual Studio Code.
Um gatilho de temporizador invoca um código de função de acordo com um agendamento consistente. Para definir o agendamento para um gatilho de temporizador, criamos uma expressão CRON, que é uma cadeia de caracteres que representa um conjunto de horários.