Ejecución de una función de Azure según una programación

Completado

Es habitual ejecutar un fragmento de lógica en un intervalo establecido. Imagine que es el propietario de un blog y observa que los suscriptores no están leyendo sus entradas más recientes. Puede decidir que lo mejor es enviar un correo electrónico una vez por semana para recordarles que visiten su blog. Para implementar esta lógica, cree una aplicación de funciones en Azure con un desencadenador de temporizador para invocar la función semanalmente.

¿Qué es un desencadenador de temporizador?

Un desencadenador de temporizador es un desencadenador que ejecuta una función en un intervalo uniforme. Para crear un desencadenador de temporizador, debe proporcionar dos fragmentos de información.

  1. Un Nombre de parámetro de marca de tiempo, que es simplemente un identificador para acceder al desencadenador en el código.
  2. Una Programación, que es una expresión CRON que establece el intervalo del temporizador.

¿Qué es una expresión CRON?

Una expresión CRON es una cadena que consta de seis campos que representan un conjunto de horas.

El orden de los seis campos en Azure es: {second} {minute} {hour} {day} {month} {day of the week}.

Por ejemplo, una expresión CRON para crear un desencadenador que se ejecuta cada cinco minutos sería así: 0 */5 * * * *

A primera vista, esta cadena puede parecer confusa. Volveremos y desglosaremos estos conceptos cuando hayamos echado un vistazo más profundo a las expresiones CRON.

Para compilar una expresión CRON, debe tener conocimientos básicos de algunos de los caracteres especiales.

Carácter especial Significado Ejemplo
* Selecciona todos los valores de un campo Un asterisco "*" en el campo de día de la semana significa cada día.
, Separa los elementos de una lista. Una coma "1,3" en el capo de día de la semana significa solo los lunes (día 1) y los miércoles (día 3).
- Especifica un intervalo. Un guion "10-12" en el campo de hora significa un intervalo que incluya las horas, 10, 11 y 12.
/ Especifica un incremento. Una barra diagonal "*/10" en el campo de minutos significa un incremento de cada 10 minutos.

Ahora volveremos al ejemplo original de expresión CRON. Vamos a desglosar campo por campo para intentar comprenderlo mejor.

0 */5 * * * *

El primer campo representa los segundos. Este campo admite los valores de 0 a 59. Dado que el campo contiene un cero, selecciona el primer valor posible, que es un segundo.

El segundo campo representa los minutos. El valor "*/5" contiene dos caracteres especiales. En primer lugar, el asterisco (*) significa "seleccionar cada valor dentro del campo". Como este campo representa minutos, los valores posibles son 0-59. El segundo carácter especial es la barra diagonal (/), que representa un incremento. Cuando se combinan estos caracteres, significa que de todos los valores de 0 a 59, se selecciona cada quinto valor. Una manera más fácil de decirlo es simplemente "cada cinco minutos".

Los cuatro campos restantes representan numéricamente la hora en un día de 24 horas, el día del mes, el mes en un año de 12 meses y el día de la semana de 7 días. Un asterisco en estos campos significa seleccionar todos los valores posibles. En este ejemplo, seleccionamos "cada hora de cada día de cada mes".

Al colocar todos los campos juntos, la expresión se lee como "el primer segundo de cada quinto minuto de cada hora de cada día de cada mes".

Cómo crear un desencadenador de temporizador

Puede crear un desencadenador de temporizador en Azure Portal. En la aplicación de funciones, seleccione desencadenador de temporizador en la lista de plantillas de desencadenador. Escriba la lógica que quiere ejecutar. Proporcione un nombre de parámetro de marca de tiempo y la expresión CRON.

En este módulo, nos centraremos en la creación de desencadenadores en el portal, pero también se pueden crear mediante programación con Core Tools, Visual Studio o Visual Studio Code.

Un desencadenador de temporizador invoca el código de función, según una programación uniforme. Para definir la programación de un desencadenador de temporizador, se compila una expresión CRON, que es una cadena que representa un conjunto de horas.