Comme alternative à la liste de conditions simples utilisée dans Cloud Assembly, 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.

Éditeur avancé de critères d'actions personnalisées

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