Référence : Expressions Cron et Rate pour Systems Manager - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Référence : Expressions Cron et Rate pour Systems Manager

Lorsque vous créez un State Manager association ou fenêtre de maintenance dans AWS Systems Manager, vous spécifiez un calendrier d'exécution de la fenêtre ou de l'association. Vous pouvez spécifier une planification sous la forme d'une entrée temporelle, appelée expression cron ou une entrée basée sur la fréquence appelée expression de fréquence.

Informations générales sur les expressions cron et rate

Les informations suivantes s'appliquent aux expressions cron et rate pour les fenêtres de maintenance et les associations.

Planification en un seul cycle

Lorsque vous créez une association ou une fenêtre de maintenance, vous pouvez spécifier un horodatage au format Coordinated Universal Time (UTC) afin qu'il ne s'exécute qu'une seule fois à l'heure spécifiée. Par exemple : "at(2020-07-07T15:55:00)"

Décalages de planification

Les associations et les fenêtres de maintenance prennent en charge les décalages de planification pour les expressions CRON uniquement. Un décalage de planification est le nombre de jours à attendre après la date et l'heure spécifiées par une expression CRON avant d'exécuter l'association ou la fenêtre de maintenance.

Maintenance window example

Dans la commande suivante, l’expression cron planifie une fenêtre de maintenance à exécuter le troisième mardi de chaque mois à 23 h 30. Cependant, en raison du décalage horaire qui est 2, la fenêtre de maintenance ne s’exécutera qu’à 23 h 30 deux jours plus tard.

aws ssm create-maintenance-window \ --name "My-Cron-Offset-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "cron(30 23 ? * TUE#3 *)" \ --duration 4 \ --cutoff 1 \ --schedule-offset 2
Association example

Dans la commande suivante, l’expression cron planifie l’exécution d’une association le deuxième jeudi de chaque mois. Cependant, en raison du décalage horaire qui est 3, l’association ne fonctionnera que le dimanche suivant, trois jours plus tard.

aws ssm create-association \ --name "AWS-UpdateSSMAgent" \ --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" \ --schedule-expression "cron(0 0 ? * THU#2 *)" \ --schedule-offset 3 --apply-only-at-cron-interval
Note

Pour utiliser un décalage avec une association, vous devez spécifier l’option --apply-only-at-cron-interval. Cette option indique au système de ne pas exécuter d’association immédiatement après sa création.

Si vous créez une association ou une fenêtre de maintenance avec une expression cron qui cible un jour qui est déjà passé dans la période actuelle, mais que vous ajoutez une date de décalage de planification qui tombe dans le futur, l'association ou la fenêtre de maintenance ne s'exécutera pas dans la période. Il entrera en vigueur au cours de la période suivante. Par exemple, si vous spécifiez une expression cron qui aurait exécuté une fenêtre de maintenance hier et ajouté un décalage horaire de deux jours, la fenêtre de maintenance ne s'exécutera pas demain.

Champs obligatoires

Les expressions cron pour les fenêtres de maintenance comportent six champs obligatoires. Les expressions Cron pour les associations en comportent cinq. (State Manager ne permet pas actuellement de spécifier des mois dans les expressions cron pour les associations.) Un champ supplémentaire, le champ Seconds (le premier dans une expression cron), est facultatif. Ces champs sont séparés par un espace.

Exemples d'expressions cron
Minutes Heures Jour du mois Mois Jour de la semaine Année Signification
0 USD 10 * * ? * Courez à 10 h (UTC) tous les jours
15 12 * * ? * Courez à 12 h 15 (UTC) tous les jours
0 18 ? * MON-FRI * Ouvert à 18 h 00 (UTC) du lundi au vendredi
0 8 1 * ? * Courez à 8h00 (UTC) tous les 1er jours du mois
Valeurs prises en charge

Le tableau suivant montre les valeurs prises en charge pour les entrées cron obligatoires.

Valeurs prises en charge pour les expressions cron
Champ Valeurs Caractères génériques
Minutes 0-59 , - * /
Heures 0-23 , - * /
D ay-of-month 1-31 , - * ? / L W
Mois (fenêtres de maintenance uniquement) 1-12 ou JAN-DEC , - * /
D ay-of-week 1-7 ou SUN-SAT , - * ? / L #
Année 1970-2199 , - * /
Note

Vous ne pouvez pas spécifier de valeur dans les champs day-of-month et dans les day-of-week champs d'une même expression cron. Si vous spécifiez une valeur dans l'un de ces champs, vous devez utiliser un signe ? (point d'interrogation) dans l'autre.

Caractères génériques pour les expressions cron

Le tableau suivant présente les valeurs de caractères génériques que les expressions cron prennent en charge.

Note

Les expressions cron qui entraînent des fréquences d'une rapidité supérieure à cinq (5) minutes ne sont pas prises en charge. Support pour spécifier à la fois un day-of-week et une day-of-month valeur n'est pas complet. Utilisez un point d'interrogation « ? » dans l'un de ces champs.

Caractères génériques pris en charge pour les expressions cron
Caractère générique Description
, Le caractère générique ,, (virgule) inclut des valeurs supplémentaires. Dans le champ Mois, JANFEB, MAR inclurait les mois de janvier, février et mars.
- Le caractère générique - (tiret) spécifie des plages. Dans le champ Jour, 1-15 englobe les jours 1 à 15 du mois spécifié.
* Le caractère générique * (astérisque) inclut toutes les valeurs du champ. Dans le champ Heures, * inclut toutes les heures.
/ Le caractère générique / (barre oblique) spécifie les incréments. Dans le champ Minutes, vous pouvez saisir 1/10 pour spécifier des intervalles de dix minutes, en partant de la première minute de l'heure. Donc 1/10 spécifie la première, la 11e, la 21e, la 31e minute, et ainsi de suite.
? Le caractère générique ? (point d'interrogation) indique l'un ou l'autre. Dans le Day-of-month champ, vous pouvez saisir 7 et si vous ne vous souciez pas du jour de la semaine le 7, pouvez-vous entrer ? sur le Day-of-week terrain.
L Le L caractère générique dans les Day-of-week champs Day-of-month ou indique le dernier jour du mois ou de la semaine.
W Le W caractère générique dans le Day-of-month champ indique un jour de la semaine. Dans le Day-of-month champ, 3W indique le jour le plus proche du troisième jour de semaine du mois.
# Le # caractère générique dans le day-of-week champ suivi d'un chiffre compris entre un et cinq indique un jour donné du mois. 5 #3 indique le 3e jeudi du mois.
Expressions de fréquence

Les expressions de fréquence comportent deux champs obligatoires. Ces champs sont séparés par un espace.

Champs obligatoires pour les expression rate
Champ Valeurs

Valeur

nombre positif, tel que 1 ou 15

Unité

minute

minutes

hour

hours

day

days

Si la valeur est égale à 1, l'unité doit être au singulier. De même, pour les valeurs supérieures à 1, l'unité doit être au pluriel. Par exemple, rate(1 hours) et rate(5 hour) ne sont pas valides, mais rate(1 hour) et rate(5 hours) sont valides.

Expressions cron et rate pour les associations

Cette section inclut des exemples d'expressions cron et rate pour State Manager associations. Avant de créer l'une de ces expressions, soyez conscient des informations suivantes :

  • Les associations prennent en charge les expressions cron suivantes : toutes les 1/2, 1, 2, 4, 8 ou 12 heures ; chaque jour, chaque semaine, ou chaque jour et heure précisés de la semaine ; un jour précis dans une semaine précise du mois ou le dernier jour x du mois à une heure précise.

  • Les associations prennent en charge les expressions rate suivantes : intervalles de 30 minutes ou plus et moins de 31 jours.

  • Si vous spécifiez le champ facultatif Seconds, sa valeur peut être 0 (zéro). Par exemple : cron(0 */30 * * * ? *)

  • Pour une association qui collecte des métadonnées pour Inventory, une des fonctionnalités de AWS Systems Manager, nous vous recommandons d'utiliser une expression rate.

  • State Manager ne prend actuellement pas en charge la spécification de mois dans les expressions cron pour les associations.

Les associations prennent en charge les expressions cron qui incluent un jour de la semaine et le signe numérique (#) pour désigner le nième jour d'un mois pour diriger une association. Voici un exemple qui exécute un calendrier cron le troisième mardi de chaque mois à 23h30 : UTC

cron(30 23 ? * TUE#3 *)

Voici un exemple diffusé le deuxième jeudi de chaque mois à minuit UTC :

cron(0 0 ? * THU#2 *)

Les associations soutiennent également le signe (L) pour indiquer le dernier X jour du mois. Voici un exemple qui exécute un calendrier cron le dernier mardi de chaque mois à minuit UTC :

cron(0 0 ? * 3L *)

Pour contrôler davantage l'exécution d'une association, par exemple si vous souhaitez exécuter une association deux jours après le correctif mardi, vous pouvez spécifier un décalage. Un offset (décalage) définit le nombre de jours d'attente après le jour prévu pour exécuter une association. Par exemple, si vous avez spécifié une planification cron de cron(0 0 ? * THU#2 *), vous pouvez spécifier le numéro 3 dans le champ Schedule offset (Décalage de planification) pour exécuter l'association tous les dimanches après le deuxième jeudi du mois.

Pour utiliser des décalages, vous devez choisir le Apply association only at the next specified Cron interval (Appliquer l'association uniquement à l'intervalle Cron spécifié suivant) dans la console ou vous devez spécifier l'utilisation du paramètre --apply-only-at-cron-interval à partir de la ligne de commande. Cette option indique State Manager de ne pas lancer une association immédiatement après l'avoir créée.

Le tableau suivant présente des exemples d'expressions cron pour les associations.

Exemples cron pour associations
Exemple Détails

cron(0/30 * * * ? *)

Toutes les 30 minutes

cron(0 0/1 * * ? *)

Toutes les heures

cron(0 0/2 * * ? *)

Toutes les 2 heures

cron(0 0/4 * * ? *)

Toutes les 4 heures

cron(0 0/8 * * ? *)

Toutes les 8 heures

cron(0 0/12 * * ? *)

Toutes les 12 heures

cron(15 13 ? * * *)

Tous les jours à 13 h 15

cron(15 13 ? * MON *)

Tous les lundis à 13 h 15

cron(30 23 ? * TUE#3 *)

Le troisième mardi de chaque mois à 23 h 30

Voici quelques exemples d'expressions rate pour les associations.

Exemples rate pour les associations
Exemple Détails

rate(30 minutes)

Toutes les 30 minutes

rate(1 hour)

Toutes les heures

rate(5 hours)

Toutes les 5 heures

rate(15 days)

Tous les 15 jours

AWS CLI exemples pour les associations

Pour créer State Manager associations utilisant le AWS CLI, vous incluez le --schedule-expression paramètre dans une expression cron ou rate. Les exemples suivants utilisent le AWS CLI sur une machine Linux locale.

Note

Par défaut, lorsque vous créez une nouvelle association, le système l'exécute immédiatement après sa création, puis selon la planification que vous avez spécifiée. Spécifiez --apply-only-at-cron-interval de sorte que l'association ne s'exécute pas immédiatement après sa création. Ce paramètre n'est pas pris en charge pour les expressions 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

Expressions cron et rate pour les fenêtres de maintenance

Cette section inclut des exemples d'expressions cron et rate pour les fenêtres de maintenance.

Contrairement State Manager associations, les fenêtres de maintenance supportent toutes les expressions cron et rate. Cela inclut la prise en charge des valeurs dans le champ secondes.

Par exemple, l'expression cron à 6 champs exécute une fenêtre de maintenance à 9 h 30 chaque jour.

cron(30 09 ? * * *)

Si l'on ajoute une valeur au champ Seconds, l'expression cron suivante à 7 champs exécute une fenêtre de maintenance tous les jours à 9 h 30 et 24 s.

cron(24 30 09 ? * * *)

Le tableau suivant fournit des exemples supplémentaires d'expressions cron à 6 champs pour les fenêtres de maintenance.

Exemples cron pour les fenêtres de maintenance
Exemple Détails

cron (0) 2 ? * THU #3 *)

2 h 00 le troisième jeudi de chaque mois

cron(15 10 ? * * *)

10 h 15 tous les jours

cron (15, 10) ? (* MON - FRI *)

10 h 15 chaque lundi, mardi, mercredi, jeudi et vendredi

cron(0 2 L * ? *)

2 h 00 le dernier jour de chaque mois

cron(15 10 ? * 6L *)

10 h 15 le dernier vendredi de chaque mois

Le tableau suivant fournit des exemples rate pour les fenêtres de maintenance.

Exemples rate pour les fenêtres de maintenance
Exemple Détails

rate(30 minutes)

Toutes les 30 minutes

rate(1 hour)

Toutes les heures

rate(5 hours)

Toutes les 5 heures

rate(25 days)

Tous les 25 jours

AWS CLI exemples de fenêtres de maintenance

Pour créer des fenêtres de maintenance à l'aide de AWS CLI, vous devez inclure le --schedule paramètre dans une expression cron ou rate ou un horodatage. Les exemples suivants utilisent le AWS CLI sur une machine Linux locale.

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
Plus d'informations

CRONexpression sur le site de Wikipédia