Programar expresiones para reglas
Amazon EventBridge es la forma preferida de administrar sus eventos. Amazon CloudWatch Events y EventBridge son el mismo servicio subyacente y la misma API, pero EventBridge ofrece más características. Los cambios que realice en CloudWatch o EventBridge aparecerán en cada consola. Para obtener más información, consulte Amazon EventBridge. |
Puede crear reglas que se disparen automáticamente con una programación automatizada en CloudWatch Events mediante expresiones cron o de frecuencia. Todos los eventos programados utilizan la zona horaria UTC y la precisión mínima para programas es de 1 minuto.
CloudWatch Events admite expresiones cron y expresiones de frecuencia. Las expresiones rate son más fáciles de definir, pero no ofrecen el control preciso que proporcionan las expresiones cron. Por ejemplo, con una expresión cron, puede definir una regla que se active a una hora especificada de un determinado día de cada semana o mes. Por el contrario, las expresiones rate activan una regla a un ritmo regular, como una vez cada hora o una vez cada día.
CloudWatch Events no proporciona precisión de segundo nivel en expresiones de programación. La mejor resolución al utilizar una expresión Cron es un minuto. Debido a la naturaleza distribuida de los servicios de destino y del CloudWatch Events, el retraso entre el momento en que la regla programada se activa y el momento en que el servicio de destino realiza la ejecución del recurso de destino puede ser de varios segundos. La regla programada se activa dentro de ese minuto, pero no en el segundo 0 preciso.
Expresiones Cron
Las expresiones Cron tienen seis campos obligatorios, que están separados por un espacio en blanco.
Sintaxis
cron(fields)
Campo | Valores | Caracteres comodín |
---|---|---|
Minutes |
0-59 |
, - * / |
Hours |
0-23 |
, - * / |
Day-of-month |
1-31 |
, - * ? / L W |
Month |
1-12 o JAN-DEC |
, - * / |
Day-of-week |
1-7 o SUN-SAT |
, - * ? / L # |
Year |
1970-2199 |
, - * / |
Wildcards
-
El carácter comodín , (coma) incluye valores adicionales. En el campo Month, JAN, FEB, MAR incluiría enero, febrero y marzo.
-
El - (guion) especifica intervalos. En el campo Day, 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 Hours, * incluiría cada hora. No puede utilizar * en los campos Day-of-month (Día del mes) y Day-of-week (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 Minutes, 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 Day-of-month puede escribir 7 y si no se preocupó de qué día de la semana era el 7º, podría escribir ? en el campo Day-of-week.
-
El comodín L en los campos Day-of-month o Day-of-week especifica el último día del mes o de la semana.
-
El comodín
W
en el campo Day-of-month especifica un día de la semana. En el campo Day-of-month (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 Day-of-week 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.
Restrictions
-
No se pueden especificar los campos Day-of-month y Day-of-week en la misma expresión Cron. Si especifica un valor (o un *) en uno de los campos, debe utilizar un ? (signo de interrogación) en el otro.
-
No se admiten las expresiones Cron que conducen a frecuencias superiores a 1 minuto.
Examples
Puede utilizar las siguientes cadenas cron de ejemplo al crear una regla con programa.
Minutos | Hours | Día del mes | Month | Día de la semana | Year | Significado |
---|---|---|---|---|---|---|
0 |
10 |
* |
* |
? |
* |
Ejecutar a las 10:00 h (UTC) todos los días |
15 |
12 |
* |
* |
? |
* |
Ejecutar a las 12.15 h (UTC) todos los días |
0 |
18 |
? |
* |
MON-FRI |
* |
Ejecutar a las 18.00 h (UTC) de lunes a viernes |
0 |
8 |
1 |
* |
? |
* |
Ejecutar a las 8.00 horas (UTC) cada primer día del mes |
0/15 |
* |
* |
* |
? |
* |
Ejecutar cada 15 minutos |
0/10 |
* |
? |
* |
MON-FRI |
* |
Ejecutar cada 10 minutos de lunes a viernes |
0/5 |
8-17 |
? |
* |
MON-FRI |
* |
Ejecutar cada 5 minutos de lunes a viernes entre las 8.00 y las 17.55 h (UTC) |
Los siguientes ejemplos muestran cómo utilizar expresiones Cron con el comando AWS CLIput-rule de la . El primer ejemplo crea una regla que se activa cada día a las 12.00 UTC.
aws events put-rule --schedule-expression "cron(0 12 * * ? *)" --name
MyRule1
El siguiente ejemplo crea una regla que se activa cada día, a los 5 y 35 minutos después de las 14:00 UTC.
aws events put-rule --schedule-expression "cron(5,35 14 * * ? *)" --name
MyRule2
El siguiente ejemplo crea una regla que se activa a las 10.15 UTC, el último viernes de cada mes, entre los años 2002 y 2005.
aws events put-rule --schedule-expression "cron(15 10 ? * 6L 2002-2005)" --name
MyRule3
Expresiones de frecuencia
Una expresión de frecuencia comienza cuando se crea una regla de evento programado y, a continuación, se ejecuta en su programa definido.
Las expresiones de frecuencia tienen dos campos obligatorios. Los campos están separados por un espacio en blanco.
Sintaxis
rate(value unit)
- value
-
Un número positivo.
- unidad
-
La unidad de tiempo. Se requieren diferentes unidades para valores de 1, como
minute
, y valores superiores a 1, comominutes
.Valores válidos: minuto | minutos | hora | horas | día | días
Restrictions
Si el valor es igual a 1, entonces la unidad debe ser singular. Del mismo modo, para valores mayores que 1, la unidad debe ser plural. Por ejemplo, las frecuencias rate(1 hours) y rate(5 hour) no son válidas, pero rate(1 hour) y rate(5 hours) son válidas.
Examples
Los siguientes ejemplos muestran cómo utilizar expresiones de frecuencia con el comando AWS CLIput-rule de la . El primer ejemplo activa la regla cada minuto, el segundo ejemplo la activa cada 5 minutos, el tercero la activa una vez cada hora y el último la activa una vez al día.
aws events put-rule --schedule-expression "rate(1 minute)" --name
MyRule2
aws events put-rule --schedule-expression "rate(5 minutes)" --name
MyRule3
aws events put-rule --schedule-expression "rate(1 hour)" --name
MyRule4
aws events put-rule --schedule-expression "rate(1 day)" --name
MyRule5