Tipos de programaciones en el Programador de EventBridge - EventBridge Planificador

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tipos de programaciones en el Programador de EventBridge

En el siguiente tema se describen los distintos tipos de programación que admite el Programador de Amazon EventBridge, así como la forma en la que el Programador de EventBridge gestiona el horario de verano y la programación en diferentes zonas horarias. Al configurar su programación, puede elegir entre tres tipos de programación: basada en frecuencia, cronológica y única.

Tanto las programaciones basadas en frecuencias como las basadas en cron son programaciones recurrentes. Para configurar cada tipo de programación periódica, utilice una expresión de programación para el tipo de programación que desee configurar y especificando una zona horaria en la que el Programador de EventBridge evalúe la expresión.

Una programación única es una programación que invoca solo una vez un destino. Para configurar una programación única, especifique la hora, la fecha y la zona horaria en la que el Programador de EventBridge evalúa la programación.

nota

Todos los tipos de programación del Programador de EventBridge invocan sus destinos con una precisión de 60 segundos. Esto significa que si configura su programación para que se ejecute a la 1:00, invocará la API de destino entre 1:00:00 y 1:00:59.

Utilice las siguientes secciones para obtener información sobre cómo configurar las expresiones de programación para cada tipo de programación recurrente y cómo configurar una programación única en el Programador de EventBridge.

Programaciones basadas en frecuencias

Una programación basada en frecuencia comienza después de la fecha de inicio que usted especifique para su programa y se ejecuta a una frecuencia regular que usted defina hasta la fecha de finalización de la programación. Puede configurar los casos de uso de la programación recurrente más comunes mediante una programación basada en frecuencias. Por ejemplo, si quiere una programación que invoque su destino cada 15 minutos, una vez cada dos horas o una vez cada cinco días, puede usar una programación basada en frecuencias para lograrlo. Para configurar una programación basada en frecuencia, utilice una expresión de frecuencia.

Con las programaciones basadas en frecuencias, utilice la propiedad StartDate para establecer la primera aparición de la programación. Si no proporciona una StartDate para una programación basada en frecuencia, su programación empezará a invocar el destino inmediatamente.

Las expresiones de frecuencia tienen dos campos obligatorios separados por un espacio en blanco, como se muestra a continuación.

Sintaxis

rate(value unit)
valor

Un número positivo.

unidad

La unidad de tiempo en la que quiere que su programación invoque su destino.

Entradas válidas: minutes | hours | days

Ejemplos

El siguiente ejemplo muestra cómo utilizar las expresiones de frecuencia con el comando AWS CLI create-schedule para configurar una programación basada en frecuencias. En este ejemplo, se crea una programación que se ejecuta cada cinco minutos y envía un mensaje a una cola de Amazon SQS, utilizando el tipo de destino con plantilla SqsParameters.

Como este ejemplo no establece un valor para el parámetro --start-date, la programación comienza a invocar su destino inmediatamente después de crearlo y activarlo.

$ aws scheduler create-schedule --schedule-expression 'rate(5 minutes)' --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

Programaciones basadas en cron

Una expresión cron crea una programación recurrente detallada que se ejecuta en el momento específico que elija. El Programador de EventBridge permite configurar programaciones basadas en cron en la hora universal coordinada (UTC) o en la zona horaria que especifique al crear la programación. Con las programaciones basadas en cron, tiene más control sobre cuándo y con qué frecuencia se ejecuta su programación. Utilice programaciones basadas en cron cuando necesite una programación de recurrencia personalizada que no sea compatible con ninguna de las expresiones de frecuencia del Programador de EventBridge. Por ejemplo, puede crear una programación basada en cron que se ejecute a las 8:00 h. PST el primer lunes de cada mes. Una programación basada en cron se configura mediante una expresión cron.

Una expresión cron consta de cinco campos obligatorios separados por espacios en blanco: minutos, horas, día del mes, mes, día de la semana y un campo opcional, el año, como se muestra a continuación.

Sintaxis

cron(minutes hours day-of-month month day-of-week year)
Campo Valores Caracteres comodín

Minutos

0-59

, - * /

Horas

0-23

, - * /

Día del mes

1-31

, - * ? / L W

Mes

1-12 o JAN-DEC

, - * /

Día de la semana

1-7 o SUN-SAT

, - * ? L #

Año

1970-2199

, - * /

Caracteres comodín
  • El carácter comodín , (coma) incluye valores adicionales. En el campo Mes, JAN, FEB, MAR incluiría enero, febrero y marzo.

  • El carácter comodín - (guion) especifica los intervalos. En el campo Día, 1-15 incluiría los días del 1 al 15 del mes especificado.

  • El * (asterisco) incluye todos los valores del campo. En el campo Horas, * incluye cada hora. No puede utilizar * en los campos Día del mes y Día de la semana. Si lo utiliza en uno, debe utilizar ? en el otro.

  • El comodín / (barra inclinada) especifica incrementos. En el campo Minutos, puede escribir 1/10 para especificar cada décimo minuto, empezando desde el primer minuto de la hora (por ejemplo, los minutos 11, 21 y 31, etc.).

  • El comodín ? (signo de interrogación) especifica uno u otro. En el campo Día del mes puede escribir 7 y si cualquier día de la semana fuera aceptable, podría escribir ? en el campo Día de la semana.

  • El comodín L en los campos Día del mes o Día de la semana especifica el último día del mes o de la semana.

  • El comodín W en el campo Día del mes especifica un día de la semana. En el campo Día del mes, 3W especifica el día de la semana más cercano al tercer día del mes.

  • El comodín # en el campo Día de la semana especifica una instancia concreta del día de la semana de un mes. Por ejemplo, 3#2 sería el segundo martes del mes: el número 3 hace referencia al martes, ya que es el tercer día de la semana en el calendario anglosajón, mientras que 2 hace referencia al segundo día de ese tipo dentro de un mes.

    nota

    Si utiliza un carácter '#', solo puede definir una expresión en el campo Día de la semana. Por ejemplo, "3#1,6#3" no es válido porque se interpreta como dos expresiones.

Ejemplos

El siguiente ejemplo muestra cómo utilizar las expresiones cron con el comando AWS CLI create-schedule para configurar una programación basada en cron. En este ejemplo, se crea una programación que se ejecuta a las 10:15 a. m. UTC+0 del último viernes de cada mes durante los años 2022 a 2023 y envía un mensaje a una cola de Amazon SQS, utilizando el tipo de destino SqsParameters con plantilla.

$ aws scheduler create-schedule --schedule-expression "cron(15 10 ? * 6L 2022-2023)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

Programación única

Una programación única invocará un destino solo una vez en la fecha y hora que especifique utilizando una fecha válida y una marca de tiempo. El Programador de EventBridge admite la programación en la hora universal coordinada (UTC) o en la zona horaria que especifique al crear la programación.

nota

Una programación única todavía cuenta para la cuota de su cuenta después de que haya terminado de ejecutarse e invocar su destino. Le recomendamos que elimine sus programaciones únicas una vez que hayan terminado de ejecutarse.

Para configurar una programación única, utilice una expresión at. Una expresión at consta de la fecha y la hora en las que desea que el Programador de EventBridge invoque su programación, tal y como se muestra a continuación.

Sintaxis

at(yyyy-mm-ddThh:mm:ss)

Al configurar una programación única, el Programador de EventBridge ignora la programación StartDate y EndDate que usted especifique para ella.

Ejemplos

En el siguiente ejemplo, se muestra cómo utilizar las expresiones at con el comando AWS CLI create-schedule para configurar una programación única. En este ejemplo, se crea una programación que se ejecuta una vez a las 13:00, hora peninsular española, del 20 de noviembre de 2022 y envía un mensaje a una cola de Amazon SQS utilizando el tipo de destino con plantilla SqsParameters.

$ aws scheduler create-schedule --schedule-expression "at(2022-11-20T13:00:00)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --schedule-expression-timezone "America/Los_Angeles" --flexible-time-window '{ "Mode": "OFF"}'

Zonas horarias en el Programador de EventBridge

El Programador de EventBridge permite configurar programaciones únicas y basadas en cron en cualquier zona horaria que especifique. El Programador de EventBridge utiliza la base de datos de zonas horarias mantenida por Internet Assigned Numbers Authority (IANA).

Con la AWS CLI, puede establecer la zona horaria en la que quiere que el Programador de EventBridge evalúe su programación mediante el parámetro --schedule-expression-timezone. Por ejemplo, el siguiente comando crea una programación basada en crono que invoca un destino SendMessage de Amazon SQS con plantilla en America/New_York todos los días a las 8:30 a.m.

$ aws scheduler create-schedule --schedule-expression "cron(30 8 * * ? *)" --name schedule-in-est \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "This schedule runs in the America/New_York time zone." }' \ --schedule-expression-timezone "America/New_York" --flexible-time-window '{ "Mode": "OFF"}'

Horario de verano en el Programador de EventBridge

El Programador de EventBridge ajusta automáticamente la programación al horario de verano. Cuando la hora se adelanta en primavera, si una expresión cron coincide con una fecha y hora inexistentes, se omite la invocación de la programación. Cuando el tiempo retrocede en otoño, su programación se ejecuta solo una vez y no repite su invocación. Las siguientes invocaciones se producen normalmente en la fecha y hora especificadas.

El Programador de EventBridge ajusta la programación en función de la zona horaria que especifique al crear la programación. Si configura una programación en America/New_York, su programación se ajusta cuando cambia la hora en esa zona horaria, mientras que una programación en America/Los_Angeles se ajusta tres horas después, cuando cambia la hora en la costa oeste.

En el caso de las programaciones basadas en frecuencias que se utilizan days como unidad, por ejemplo rate(1 days), days representa una duración de 24 horas en el reloj. Esto significa que cuando el horario de verano hace que un día se reduzca a 23 horas o se amplíe a 25 horas, el Programador de EventBridge seguirá evaluando la expresión de frecuencia 24 horas después de la última invocación de la programación.

nota

Según las normas y reglamentos locales, algunas zonas horarias no respetan el horario de verano. Si crea una programación en una zona horaria que no respeta el horario de verano, el Programador de EventBridge no ajustará su programación. Los ajustes del horario de verano no se aplican a las programaciones en horario universal coordinado (UTC).

Ejemplo

Considere un escenario en el que se crea una programación utilizando la siguiente expresión cron en America/Los_Angeles: cron(30 2 * * ? *). Esta programación se ejecuta todos los días a las 2:30 a.m. en la zona horaria especificada.

  • Avance: cuando el tiempo se adelanta en primavera entre las 1:59 y las 3:00, el Programador de EventBridge omite la invocación de la programación de ese día y vuelve a ejecutar la programación con normalidad al día siguiente.

  • Alternativa: cuando el tiempo retrocede en otoño, de las 2:59 a las 2:00 a. m., el Programador de EventBridge ejecuta la programación solo una vez a las 2:30 a.m. antes de que se produzca el cambio, pero no repite la invocación de la programación nuevamente a las 2:30 a.m. después del cambio de hora.