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