Referência: Expressões cron e rate para o Systems Manager
Ao criar uma associação do State Manager ou uma janela de manutenção no AWS Systems Manager, você especifica uma programação para quando a janela ou a associação deve ser executada. É possível especificar um agendamento como uma entrada baseada em horário, chamada de expressão cron, ou como uma entrada baseada em frequência, chamada de expressão rate.
Informações gerais sobre as expressões cron e rate
As informações a seguir são aplicáveis a expressões cron e rate para janelas de manutenção e associações.
- Programações com execução única
-
Ao criar uma associação ou uma janela de manutenção, é possível especificar um carimbo de data/hora no formato Tempo Universal Coordenado (UTC) para que ela seja executada uma vez no horário especificado. Por exemplo:
"at(2020-07-07T15:55:00)"
- Deslocamentos de programação
-
Associações e janelas de manutenção oferecem suporte a deslocamentos de programação apenas para expressões cron. Um deslocamento de programação é o número de dias de espera após a data e a hora especificadas por uma expressão do cron antes de executar a associação ou janela de manutenção.
Se você criar uma associação ou janela de manutenção com uma expressão do cron que tenha como destino um dia que já passou em relação ao período atual, mas adicionar uma data futura de deslocamento de programação, a associação ou janela de manutenção não será executada no período. Ela entrará em vigor no período seguinte. Por exemplo, se você especificar uma expressão cron que teria executado uma janela de manutenção ontem e adicionar um deslocamento de programação de dois dias, a janela de manutenção não será executada amanhã.
- Campos obrigatórios
-
Expressões cron para janelas de manutenção têm seis campos obrigatórios. Expressões cron para associações têm cinco. (no momento, o State Manager não oferece suporte à especificação de meses em expressões cron para associações.) Um campo adicional, o campo
Seconds
(o primeiro em uma expressão cron), é opcional. Os campos são separados por um espaço.Exemplos de expressão cron Minutos Horas Dia do mês Mês Dia da semana Ano Significado 0 10 * * ? * Executada às 10h (UTC) todos os dias 15 12 * * ? * Executada às 12h15 (UTC) todos os dias 0 18 ? * SEG-SEX * Executada às 18h (UTC) de segunda a sexta 0 8 1 * ? * Executada às 8h (UTC) todo o primeiro dia do mês - Valores com suporte
-
A tabela a seguir mostra os valores compatíveis com as entradas cron necessárias.
Valores compatíveis com expressões cron Campo Valores Curingas Minutos 0
-59
, - * /
Horas 0
-23
, - * /
Dia do mês 1
-31
, - * ? / L W
Mês (somente para janelas de manutenção) 1
-12
ouJAN
-DEC
, - * /
Dia da semana 1
-7
ouSUN
-SAT
, - * ? / L #
Ano 1970
-2199
, - * /
nota
Não é possível especificar os campos de dia do mês e dia da semana na mesma expressão cron. Se você especificar um valor em um dos campos, use um ? (ponto de interrogação) no outro.
- Curingas para expressões cron
-
A tabela a seguir mostra os valores curinga compatíveis com expressões cron.
nota
As expressões Cron que levam a taxas mais rápidas do que 5 (cinco) minutos não têm suporte. O suporte para especificar um valor de dia da semana e dia do mês ao mesmo tempo não está completo. Use o ponto de interrogação (?) em um desses campos.
Curingas compatíveis com expressões cron Curinga Descrição , O curinga ,
(vírgula) inclui valores adicionais. No campo Mês, JAN, FEV, MAR incluiria janeiro, fevereiro e março.- O curinga -
(traço) especifica faixas. No campo Dia, 1-15 incluiria dias 1 a 15 do mês especificado.* O curinga *
(asterisco) inclui todos os valores no campo. No campo Horas, * incluiria cada hora./ O curinga /
(barra) especifica incrementos. No campo Minutos, você pode inserir 1/10 para especificar cada décimo minuto a partir do primeiro minuto da hora. Portanto, 1/10 especifica o primeiro, 11º, 21º e 31º minuto, e assim por diante.? O curinga ?
(interrogação) especifica um ou outro. No campo Dia do mês, você pode inserir 7 e se não se importa com qual dia da semana era o 7º, pode inserir ? no campo Dia da semana.L O curinga L
nos campos Dia do mês ou Dia da semana especifica o último dia do mês ou da semana.W O curinga W
no campo Dia do mês especifica um dia da semana. No campo Dia do mês, 3W especifica o dia mais próximo do terceiro dia da semana do mês.# O caractere curinga #
no campo day-of-week (dia-da-semana) seguido de um número entre um e cinco especifica um determinado dia do mês. 5#3 especifica a terceira quinta-feira do mês. - Expressões rate
-
Expressões rate têm os seguintes dois campos obrigatórios. Os campos são separados por espaços.
Campos obrigatórios para expressões rate Campo Valores Valor
número positivo, como
1
ou15
Unidade
minute
minutes
hour
hours
day
days
Se o valor for igual a
1
, a unidade deverá ser singular. Da mesma forma, para valores maiores do que1
, a unidade deve ser plural. Por exemplo,rate(1 hours)
erate(5 hour)
não são válidas, masrate(1 hour)
erate(5 hours)
são.
Expressões cron e rate para associações
Esta seção inclui exemplos de associações do State Manager com expressões cron e rate. Antes de criar uma dessas expressões, fique atento às informações a seguir:
-
As associações comportam as seguintes expressões cron: a cada 1/2, 1, 2, 4, 8 ou 12 horas; todo dia, toda semana ou cada dia e hora especificados da semana; um dia específico em uma semana específica do mês ou o último
x
dia do mês na hora específica. -
As associações comportam apenas as seguintes expressões de taxas: intervalos de 30 minutos ou mais e menos de 31 dias.
-
Se você especificar o campo opcional
Seconds
, o valor poderá ser 0 (zero). Por exemplo:cron(0 */30 * * * ? *)
-
Para uma associação que coleta metadados para o inventário, um recurso do AWS Systems Manager, recomendamos o uso de uma expressão de taxa.
-
Atualmente, o State Manager não oferece suporte à especificação de meses em expressões cron para associações.
Associações comportam expressões do cron que incluem um dia da semana e o sinal numérico (#) para designar o nº dia de um mês para executar uma associação. Aqui está um exemplo que executa uma programação do cron na terceira terça-feira de cada mês às 23h30 UTC:
cron(30 23 ? * TUE#3 *)
Aqui está um exemplo que acontece na segunda quinta-feira de cada mês à meia-noite UTC:
cron(0 0 ? * THU#2 *)
Associações também aceitam o sinal (L) para indicar o último dia X do mês. Aqui está um exemplo que executa uma programação do cron na última terça-feira de cada mês à meia-noite UTC:
cron(0 0 ? * 3L *)
Para controlar ainda mais quando uma associação é executada, por exemplo, se você quiser executar uma associação dois dias após o patch de terça-feira, você pode especificar um deslocamento. Um deslocamento define quantos dias esperar após o dia programado para executar uma associação. Por exemplo, se você especificou uma programação do cron de cron(0 0 ? *
THU#2 *)
, você pode especificar o número 3 no campo Schedule offset (Deslocamento da programação) para executar a associação todos os domingos após a segunda quinta-feira do mês.
Para usar deslocamentos, você deve escolher a opção Apply association only at the next specified Cron interval (Aplicar associação somente no próximo intervalo de Cron especificado) no console ou você deve especificar o parâmetro de uso --apply-only-at-cron-interval
a partir da linha de comando. Essa opção diz ao State Manager para não executar uma associação imediatamente após sua criação.
A tabela a seguir apresenta exemplos cron para associações.
Exemplo | Detalhes |
---|---|
cron(0/30 * * * ? *) |
A cada 30 minutos |
cron(0 0/1 * * ? *) |
A cada hora |
cron(0 0/2 * * ? *) |
A cada 2 horas |
cron(0 0/4 * * ? *) |
A cada 4 horas |
cron(0 0/8 * * ? *) |
A cada 8 horas |
cron(0 0/12 * * ? *) |
A cada 12 horas |
cron(15 13 ? * * *) |
Todos os dia às 13h15 |
cron(15 13 ? * MON *) |
Todas as segundas às 13h15 |
cron(30 23 ? * TUE#3 *) |
A terceira terça-feira de cada mês às 23h30 |
Veja alguns exemplos de associações com rate.
Exemplo | Detalhes |
---|---|
rate(30 minutes) |
A cada 30 minutos |
rate(1 hour) |
A cada hora |
rate(5 hours) |
A cada 5 horas |
rate(15 days) |
A cada 15 dias |
Exemplos da AWS CLI para associações
Para criar associações State Manager usando a AWS CLI, inclua o parâmetro --schedule-expression
com uma expressão cron ou rate. Os exemplos a seguir usam a AWS CLI em uma máquina Linux local.
nota
Por padrão, quando você cria uma nova associação, o sistema a executa imediatamente após sua criação e de acordo com a programação especificada. Especifique --apply-only-at-cron-interval
para que a associação não seja executada imediatamente após a criação. Esse parâmetro não é compatível com expressões rate.
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
Expressões cron e rate para janelas de manutenção
Esta seção inclui exemplos de expressões cron e rate para janelas de manutenção.
Ao contrário das associações do State Manager, as janelas de manutenção são compatíveis com todas as expressões cron e de taxa. Isso inclui suporte para valores no campo de segundos.
Por exemplo, a expressão cron de 6 campos a seguir executa uma janela de manutenção às 9:30 AM todos os dias.
cron(30 09 ? * * *)
Ao adicionar um valor ao campo Seconds
, a expressão cron de 7 campos a seguir executa uma janela de manutenção às 9:30:24 hs todos os dias.
cron(24 30 09 ? * * *)
A tabela a seguir fornece exemplos adicionais de cron de 6 campos para janelas de manutenção.
Exemplo | Detalhes |
---|---|
cron(0 2 ? * THU#3 *) |
02:00, na terceira quinta-feira de cada mês |
cron(15 10 ? * * *) |
10:15, todos os dias |
cron(15 10 ? * MON-FRI *) |
10:15 todas as segundas, terças, quartas, quintas e sexta-feiras |
cron(0 2 L * ? *) |
02:00, no último dia de cada mês |
cron(15 10 ? * 6L *) |
10:15, na última sexta-feira de cada mês |
A tabela a seguir fornece exemplos de rate para janelas de manutenção.
Exemplo | Detalhes |
---|---|
rate(30 minutes) |
A cada 30 minutos |
rate(1 hour) |
A cada hora |
rate(5 hours) |
A cada 5 horas |
rate(25 days) |
A cada 25 dias |
Exemplos de AWS CLI para janelas de manutenção
Para criar janelas de manutenção usando a AWS CLI, inclua o parâmetro --schedule
com uma expressão cron ou rate ou um carimbo de data/hora. Os exemplos a seguir usam a AWS CLI em uma máquina 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
- Mais informações
-
Expressão CRON
, no Site da Wikipedia