Als alternatief voor de lijst met eenvoudige voorwaarden in Cloud Assembly kunt u met de geavanceerde editor complexere criteria-expressies samenstellen om te bepalen wanneer de actie beschikbaar is.

Wanneer u een nieuwe resourceactie maakt, selecteert u Voorwaarde is vereist en Geavanceerde editor gebruiken. Voer vervolgens de gewenste criteria-expressie in.

Geavanceerde editor voor aangepaste actiecriteria

De expressie is een component of lijst met componenten, die elk de indeling sleutel-operator-waarde hebben. De voorgaande afbeelding toont criteria waar het doel moet worden ingeschakeld en aanwezig moet zijn.

Componenten

Component Beschrijving Voorbeeld
en Alle subcomponenten moeten waar zijn zodat het expressieresultaat waar is.

Resulteert alleen in waar wanneer zowel properties.powerState AAN is en syncStatus niet ONTBREEKT.

matchExpression:
  - and:
      - key: properties.powerState
        operator: eq
        value: ON
      - key: syncStatus
        operator: notEq
        value: MISSING
of Een of meer subcomponenten moeten waar zijn zodat het expressieresultaat waar kan zijn.

Resulteert in waar wanneer properties.powerState AAN of UIT is.

matchExpression:
  - or:
      - key: properties.powerState
        operator: eq
        value: ON
      - key: properties.powerState
        operator: eq
        value: OFF

Operatoren

Operator Beschrijving Voorbeeld
eq Gelijk aan. Zoek naar een exacte overeenkomst.

Resulteert in waar wanneer properties.powerState AAN is.

matchExpression:
  - and:
      - key: properties.powerState
        operator: eq
        value: ON
notEq Niet gelijk aan. Voorkom een exacte overeenkomst.

Resulteert in waar wanneer properties.powerState niet UIT is.

matchExpression:
  - and:
      - key: properties.powerState
        operator: notEq
        value: OFF
hasAny Zoek naar een overeenkomst in een verzameling van objecten.

Resulteert in waar wanneer de array storage.disks een 100 IOPS EBS-object bevat.

matchExpression:
  - key: storage.disks
    operator: hasAny
    value:
      matchExpression: 
        - and:
            - key: iops
              operator: eq
              value: 100
            - key: service
              operator: eq
              value: ebs
in Zoek naar een overeenkomst in een waardenset.

Resulteert in waar wanneer properties.powerState UIT of OPHEFFEN is.

matchExpression:
  - and:
      - key: properties.powerState
        operator: in
        value: OFF, SUSPEND
notIn Voorkom dat een waardenset overeenkomt.

Resulteert in waar wanneer properties.powerState niet UIT of OPHEFFEN is.

matchExpression:
  - and:
      - key: properties.powerState
        operator: notIn
        value: OFF, SUSPEND
greaterThan Zoek naar een overeenkomst boven een bepaalde drempelwaarde. Alleen van toepassing op numerieke waarden.

Resulteert in waar wanneer het eerste object in de array storage.disks meer dan 50 IOPS heeft.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: greaterThan
        value: 50
lessThan Zoek naar een overeenkomst onder een bepaalde drempelwaarde. Alleen van toepassing op numerieke waarden.

Resulteert in waar wanneer het eerste object in de array storage.disks minder dan 200 IOPS heeft.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: lessThan
        value: 200
greaterThanEquals Zoek naar een overeenkomst op of boven een bepaalde drempelwaarde. Alleen van toepassing op numerieke waarden.

Resulteert in waar wanneer het eerste object in de array storage.disks 100 of meer IOPS heeft.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: greaterThanEquals
        value: 100
lessThanEquals Zoek naar een overeenkomst op of onder een bepaalde drempelwaarde. Alleen van toepassing op numerieke waarden.

Resulteert in waar wanneer het eerste object in de array storage.disks 100 of minder IOPS heeft.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: lessThanEquals
        value: 100
matchesRegex Gebruik een reguliere expressie om te zoeken naar een overeenkomst.

Resulteert in waar wanneer properties.zone us-east-1a of us-east-1c is.

matchExpression:
  - and:
      - key: properties.zone
        operator: matchesRegex
        value: (us-east-1)+(a|c){1,2}

Voorbeelden

De volgende criteria-expressie resulteert in waar wanneer properties.tags een tag met sleutel key1 en waarde value1 bevat.

De buitenste expressie gebruikt hasAny omdat properties.tags een array is en u wilt dat deze resulteert in waar wanneer key1=value1 wordt weergegeven in een van de sleutelwaardeparen in de array.

In de binnenste expressie staan twee componenten: één voor het sleutelveld en één voor het waardeveld. De array properties.tags bevat tagparen met sleutelwaarde en zowel de sleutel- als waardevelden moeten overeenkomen.

matchExpression:
  - key: properties.tags
    operator: hasAny
    value:
      matchExpression:
        - and:
            - key: key
              operator: eq
              value: key1
            - key: value
              operator: eq
              value: value1

De volgende criteria-expressie lijkt op het vorige voorbeeld, maar resulteert nu in waar wanneer properties.tags een tag met key1=value1 of key2=value2 bevat.

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