Comme alternative à la liste de conditions simples utilisée dans Automation Assembler, l'éditeur avancé vous permet d'assembler des expressions de critères plus complexes pour contrôler le moment où l'action est disponible.
Lors de la création d'une action de ressource, sélectionnez Condition requise et Utiliser l'éditeur avancé. Entrez ensuite l'expression de critères souhaitée.
L'expression est une clause ou une liste de clauses, dont chacune est au format clé-opérateur-valeur. La figure précédente présente les critères pour lesquels la cible doit être sous tension et présente.
Clauses
| Clause | Description | Exemple |
|---|---|---|
| et | Toutes les sous-clauses doivent être vraies pour que le résultat de l'expression soit vrai. | Évaluer comme vraie uniquement lorsque properties.powerState est ACTIVÉ et que syncStatus n'est pas MANQUANT. matchExpression:
- and:
- key: properties.powerState
operator: eq
value: ON
- key: syncStatus
operator: notEq
value: MISSING
|
| ou | Une ou plusieurs sous-clauses doivent être vraies pour que le résultat de l'expression soit vrai. | Évaluer comme vraie si properties.powerState est ACTIVÉ ou DÉSACTIVÉ. matchExpression:
- or:
- key: properties.powerState
operator: eq
value: ON
- key: properties.powerState
operator: eq
value: OFF
|
Opérateurs
| Opérateur | Description | Exemple |
|---|---|---|
| eq | Égal à. Rechercher une correspondance exacte. | Évaluer comme vraie lorsque properties.powerState est ACTIVÉ. matchExpression:
- and:
- key: properties.powerState
operator: eq
value: ON
|
| notEq | Différent de. Évitez une correspondance exacte. | Évaluer comme vraie lorsque properties.powerState n'est pas DÉSACTIVÉ. matchExpression:
- and:
- key: properties.powerState
operator: notEq
value: OFF
|
| hasAny | Rechercher une correspondance dans une collection d'objets. | Évaluer comme vraie lorsque la baie storage.disks inclut un objet EBS de 100 IOPS. matchExpression:
- key: storage.disks
operator: hasAny
value:
matchExpression:
- and:
- key: iops
operator: eq
value: 100
- key: service
operator: eq
value: ebs
|
| in | Recherchez une correspondance dans un ensemble de valeurs. | Évaluer comme vraie lorsque properties.powerState est DÉSACTIVÉ ou INTERROMPU. matchExpression:
- and:
- key: properties.powerState
operator: in
value: OFF, SUSPEND
|
| notIn | Éviter la correspondance d'un ensemble de valeurs. | Évaluer comme vraie lorsque properties.powerState n'est ni DÉSACTIVÉ ni INTERROMPU. matchExpression:
- and:
- key: properties.powerState
operator: notIn
value: OFF, SUSPEND
|
| greaterThan | Recherchez une correspondance sur un seuil donné. S'applique uniquement aux valeurs numériques. | Évaluer comme vraie lorsque le premier objet de la baie storage.disks a un nombre d'IOPS supérieur à 50. matchExpression:
- and:
- key: storage.disks[0].iops
operator: greaterThan
value: 50
|
| lessThan | Recherchez une correspondance dans un seuil donné. S'applique uniquement aux valeurs numériques. | Évaluer comme vraie lorsque le premier objet de la baie storage.disks a un nombre d'IOPS inférieur à 200. matchExpression:
- and:
- key: storage.disks[0].iops
operator: lessThan
value: 200
|
| greaterThanEquals | Rechercher une correspondance au niveau ou au-dessus d'un seuil donné. S'applique uniquement aux valeurs numériques. | Évaluer comme vraie lorsque le premier objet de la baie storage.disks a un nombre d'IOPS égal ou supérieur à 100. matchExpression:
- and:
- key: storage.disks[0].iops
operator: greaterThanEquals
value: 100
|
| lessThanEquals | Rechercher une correspondance au niveau ou en dessous d'un seuil donné. S'applique uniquement aux valeurs numériques. | Évaluer comme vraie lorsque le premier objet de la baie storage.disks a un nombre d'IOPS égal ou inférieur à 100. matchExpression:
- and:
- key: storage.disks[0].iops
operator: lessThanEquals
value: 100
|
| matchesRegex | Utilisez une expression régulière pour rechercher une correspondance. | Évaluer comme vraie lorsque properties.zone est us-east-1a ou us-east-1c. matchExpression:
- and:
- key: properties.zone
operator: matchesRegex
value: (us-east-1)+(a|c){1,2}
|
Exemples
L'expression de critères suivante est évaluée comme vraie lorsque properties.tags inclut une balise de clé key1 et de valeur value1.
L'expression externe utilise hasAny, car properties.tags est un tableau et que vous souhaitez l'évaluer comme vraie chaque fois que key1=value1 apparaît dans l'une des paires clé-valeur du tableau.
Dans l'expression interne, il existe deux clauses, une pour le champ clé et une pour le champ valeur. Le tableau properties.tags contient des paires de balises clé-valeur et vous devez faire correspondre les champs Clé et Valeur.
matchExpression:
- key: properties.tags
operator: hasAny
value:
matchExpression:
- and:
- key: key
operator: eq
value: key1
- key: value
operator: eq
value: value1
L'expression de critères suivante est semblable à l'exemple précédent, mais elle est désormais évaluée comme vraie chaque fois que properties.tags inclut une balise pour laquelle key1=value1 ou key2=value2.
matchExpression:
- or:
- key: properties.tags
operator: hasAny
value:
matchExpression:
- and:
- key: key
operator: eq
value: key1
- key: value
operator: eq
value: value1
- key: properties.tags
operator: hasAny
value:
matchExpression:
- and:
- key: key
operator: eq
value: key2
- key: value
operator: eq
value: value2