Referencia: expresiones cron y rate para Systems Manager
Cuando crea una asociación de State Manager o un período de mantenimiento en AWS Systems Manager, debe especificar una programación de cuándo debe llevarse a cabo el período o la asociación. Puede especificar una programación como una entrada basada en el tiempo, lo que se conoce como expresión cron, o una entrada basada en la frecuencia, lo que se conoce como expresión rate.
Información general sobre las expresiones cron y rate
La siguiente información se aplica a las expresiones cron y rate para los periodos de mantenimiento y las asociaciones.
- Programaciones de una sola ejecución
-
Cuando crea una asociación o un periodo de mantenimiento, puede especificar una marca temporal en formato de Hora Universal Coordinada (UTC) para que se ejecute una vez a la hora especificada. Por ejemplo:
"at(2020-07-07T15:55:00)"
- Desplazamientos de la programación
-
Las asociaciones o los periodos de mantenimiento admiten desplazamientos de la programación solo para expresiones cron. Un desplazamiento de la programación es el número de días que se debe esperar después de la fecha y hora especificadas por una expresión cron antes de ejecutar la asociación o el periodo de mantenimiento.
Si crea una asociación o un periodo de mantenimiento con una expresión cron dirigida a un día que ya ha pasado en el plazo actual, pero agrega una fecha de desplazamiento de programación que cae en el futuro, la asociación o el periodo de mantenimiento no se ejecutará en ese plazo. Entrará en vigor en el siguiente plazo. Por ejemplo, si especifica una expresión cron que habría ejecutado un periodo de mantenimiento ayer y agrega un desplazamiento de programación de dos días, el periodo de mantenimiento no se ejecutará mañana.
- Campos obligatorios
-
Las expresiones cron para periodos de mantenimiento tienen seis campos obligatorios. Las expresiones cron para las asociaciones tienen cinco. (Actualmente, State Manager no admite la especificación de meses en expresiones cron para asociaciones). Un campo adicional, el campo
Seconds
(el primero en una expresión cron) es opcional. Los campos están separados por un espacio.Ejemplos de expresiones cron Minutos Horas Día del mes Mes Día de la semana Año Significado 0 10 * * ? * Ejecutar a las 10:00 h (UTC) todos los días 15 12 * * ? * Ejecutar a las 12:15 (UTC) todos los días 0 18 ? * MON-FRI * Ejecutar a las 18:00 (UTC) de lunes a viernes 0 8 1 * ? * Ejecutar a las 8:00 (UTC) cada primer día del mes - Valores admitidos
-
En la siguiente tabla se desglosan los valores compatibles para las entradas cron necesarias.
Valores admitidos para expresiones cron Campo Valores Caracteres comodín Minutos 0
-59
, - * /
Horas 0
-23
, - * /
Día del mes 1
-31
, - * ? / L W
Mes (solo períodos de mantenimiento) 1
-12
o bienJAN
-DEC
, - * /
Día de la semana 1
-7
o bienSUN
-SAT
, - * ? / L #
Año 1970
-2199
, - * /
nota
No se puede especificar un valor en los campos day-of-month y day-of-week en la misma expresión cron. Si especifica un valor en uno de los campos, utilice un ? (signo de interrogación) en el otro campo.
- Comodines admitidos para expresiones cron
-
En la tabla siguiente se muestran los valores de comodín que admiten las expresiones cron.
nota
No se admiten expresiones cron que produzcan frecuencias superiores a cinco (5) minutos. La compatibilidad para especificar un valor de día de la semana y uno de día del mes no es completa. Utilice el signo de interrogación (?) en uno de estos campos.
Comodines admitidos para expresiones cron Comodín Descripción , El comodín ,
(coma) incluye los valores adicionales. En el campo Month, JAN, FEB, MAR incluiría enero, febrero y marzo.- El comodín -
(guion) especifica intervalos. En el campo Day, 1-15 incluiría los días del 1 al 15 del mes especificado.* El comodín *
(asterisco) incluye todos los valores del campo. En el campo Hours, * incluiría cada hora./ 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 lo tanto, 1/10 especifica los minutos 1, 11, 21 y 31, y así sucesivamente.? 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.L 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.W El comodín W
en el campo Día del mes especifica un día de la semana. En el campo Day-of-month, 3W especifica el día más cercano al tercer día de la semana del mes.# El comodín #
del campo día de la semana seguido de un número comprendido entre uno y cinco especifica un día determinado del mes. 5#3 especifica el tercer jueves del mes. - Expresiones rate
-
Las expresiones rate tienen los siguientes dos campos obligatorios. Los campos están separados por espacios.
Campos obligatorios para expresiones rate Campo Valores Valor
número positivo, como
1
o15
Unidad
minute
minutes
hour
hours
day
days
Si el valor es igual a
1
, entonces la unidad debe ser singular. Del mismo modo, para valores mayores que1
, la unidad debe ser plural. Por ejemplo,rate(1 hours)
yrate(5 hour)
no son válidos, perorate(1 hour)
yrate(5 hours)
son válidos.
Temas
Expresiones cron y rate para asociaciones
En esta sección se incluyen ejemplos de expresiones cron y rate para asociaciones de State Manager. Para crear una de estas expresiones, tenga en cuenta la siguiente información:
-
Las asociaciones son compatibles con las siguientes expresiones cron: cada media, 1, 2, 4, 8 o 12 horas; cada día, cada semana, o cada día y hora concretos de la semana; un día concreto de una semana concreta del mes, o el último día
x
del mes a una hora concreta. -
Las asociaciones admiten las siguientes expresiones rate: intervalos de 30 minutos o más y menos de 31 días.
-
Si especifica el campo opcional
Seconds
, su valor puede ser 0 (cero). Por ejemplo:cron(0 */30 * * * ? *)
-
Para una asociación que recopila metadatos para Inventory, una capacidad de AWS Systems Manager, se recomienda utilizar una expresión rate.
-
State Manager actualmente no admite especificar meses en expresiones cron para asociaciones.
Las asociaciones admiten expresiones cron que incluyen un día de la semana y el signo de número (#) para designar el día x de un mes para ejecutar una asociación. A continuación, se incluye un ejemplo en el que se ejecuta una programación cron el tercer martes de cada mes a las 23.30 h (UTC):
cron(30 23 ? * TUE#3 *)
A continuación, se incluye un ejemplo que se ejecuta el segundo jueves de cada mes a medianoche (UTC):
cron(0 0 ? * THU#2 *)
Las asociaciones también admiten el signo (L) para indicar el último día X del mes. A continuación, se incluye un ejemplo en el que se ejecuta una programación cron el último martes de cada mes a medianoche (UTC):
cron(0 0 ? * 3L *)
Para tener un mayor control sobre el momento en el que se ejecuta una asociación, por ejemplo, si desea ejecutar una asociación dos días después de la revisión del martes, puede especificar un desplazamiento. Un desplazamiento define los días que hay que esperar después del día programado para ejecutar una asociación. Por ejemplo, si especificó una programación cron de cron(0 0 ? *
THU#2 *)
, puede especificar el número 3 en el campo Desplazamiento de programación para ejecutar la asociación cada domingo después del segundo jueves del mes.
Para utilizar los desplazamientos, debe elegir la opción Apply association only at the next specified Cron interval en la consola o debe especificar el uso del parámetro --apply-only-at-cron-interval
desde la línea de comandos. Esta opción indica a State Manager que no ejecute ninguna asociación inmediatamente después de crearla.
En la siguiente tabla se presentan ejemplos de expresiones cron para asociaciones.
Ejemplo | Detalles |
---|---|
cron(0/30 * * * ? *) |
Cada 30 minutos |
cron(0 0/1 * * ? *) |
Cada hora |
cron(0 0/2 * * ? *) |
Cada 2 horas |
cron(0 0/4 * * ? *) |
Cada 4 horas |
cron(0 0/8 * * ? *) |
Cada 8 horas |
cron(0 0/12 * * ? *) |
Cada 12 horas |
cron(15 13 ? * * *) |
Cada día a las 13:15 |
cron(15 13 ? * MON *) |
Cada lunes a las 13:15 |
cron(30 23 ? * TUE#3 *) |
El tercer martes de cada mes a las 23.30 h |
A continuación mostramos algunos ejemplos de rate para asociaciones.
Ejemplo | Detalles |
---|---|
rate(30 minutes) |
Cada 30 minutos |
rate(1 hour) |
Cada hora |
rate(5 hours) |
Cada 5 horas |
rate(15 days) |
Cada 15 días |
Ejemplos de AWS CLI para asociaciones
Para crear asociaciones de un State Manager con el AWS CLI, incluya el parámetro --schedule-expression
con una expresión cron o rate. En los ejemplos siguientes se utiliza la AWS CLI en un equipo Linux local.
nota
De forma predeterminada, cuando crea una nueva asociación, el sistema la ejecuta inmediatamente después de crearla y, a continuación, de acuerdo con la programación especificada. Especifique --apply-only-at-cron-interval
para que no se ejecute la asociación inmediatamente después de crearla. Las expresiones rate no admiten este parámetro.
aws ssm create-association \ --association-name "My-Cron-Association" \ --schedule-expression "cron(0 2 ? * SUN *)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent
aws ssm create-association \ --association-name "My-Rate-Association" \ --schedule-expression "rate(7 days)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent
aws ssm create-association \ --association-name "My-Rate-Association" \ --schedule-expression "at(2020-07-07T15:55:00)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent \ --apply-only-at-cron-interval
Expresiones cron y rate para los períodos de mantenimiento
En esta sección se incluyen ejemplos de expresiones cron y rate para períodos de mantenimiento.
A diferencia de las asociaciones de State Manager, los periodos de mantenimiento admiten todas las expresiones cron y rate. Esto incluye compatibilidad con los valores del campo de segundos.
Por ejemplo, la siguiente expresión cron de 6 campos ejecuta un periodo de mantenimiento a las 9:30 cada día.
cron(30 09 ? * * *)
Al agregar un valor al campo Seconds
, la siguiente expresión cron de 7 campos ejecuta un periodo de mantenimiento a las 9:30:24 cada día.
cron(24 30 09 ? * * *)
En la siguiente tabla se proporcionan ejemplos de cron de 6 campos adicionales para períodos de mantenimiento.
Ejemplo | Detalles |
---|---|
cron(0 2 ? * THU#3 *) |
2:00 el tercer jueves de cada mes |
cron(15 10 ? * * *) |
10:15 todos los días |
cron(15 10 ? * MON-FRI *) |
10:15 cada lunes, martes, miércoles, jueves y viernes |
cron(0 2 L * ? *) |
2:00 el último día de cada mes |
cron(15 10 ? * 6L *) |
10:15 el último viernes de cada mes |
En la siguiente tabla se proporcionan ejemplos rate para los períodos de mantenimiento.
Ejemplo | Detalles |
---|---|
rate(30 minutes) |
Cada 30 minutos |
rate(1 hour) |
Cada hora |
rate(5 hours) |
Cada 5 horas |
rate(25 days) |
Cada 25 días |
Ejemplos de AWS CLI para períodos de mantenimiento
Para crear un periodo de mantenimiento con la AWS CLI, incluya el parámetro --schedule
con una expresión cron o rate o una marca temporal. En los ejemplos siguientes se utiliza la AWS CLI en un equipo Linux local.
aws ssm create-maintenance-window \ --name "My-Cron-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "cron(0 16 ? * TUE *)" \ --schedule-timezone "America/Los_Angeles" \ --start-date 2021-01-01T00:00:00-08:00 \ --end-date 2021-06-30T00:00:00-08:00 \ --duration 4 \ --cutoff 1
aws ssm create-maintenance-window \ --name "My-Rate-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "rate(7 days)" \ --duration 4 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1
aws ssm create-maintenance-window \ --name "My-TimeStamp-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "at(2021-07-07T13:15:30)" \ --duration 4 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1
- Más información
-
Expresiones cron
en el sitio web de Wikipedia