Als Alternative zur Liste der einfachen Bedingungen in Cloud Assembly können Sie mit dem erweiterten Editor komplexe Kriterienausdrücke zusammenstellen, um zu steuern, wann die Aktion verfügbar ist.

Wenn Sie eine neue Ressourcenaktion erstellen, wählen Sie Bedingung erforderlich und Erweiterten Editor verwenden aus. Geben Sie dann den gewünschten Kriterienausdruck ein.

Kriterien für benutzerdefinierte Aktionen, erweiterter Editor

Bei dem Ausdruck handelt es sich um eine Klausel oder eine Liste von Klauseln, die jeweils im Schlüssel-Operator-Wert-Format vorliegt. Die vorherige Abbildung zeigt Kriterien, denen das Ziel eingeschaltet und vorhanden sein muss.

Klauseln

Klausel Beschreibung Beispiel
und Alle Unterklauseln müssen wahr sein, damit das Ergebnis des Ausdrucks wahr ist.

Wird nur als „true“ ausgewertet, wenn „properties.powerState“ gleich ON und „syncStatus“ nicht MISSING ist.

matchExpression:
  - and:
      - key: properties.powerState
        operator: eq
        value: ON
      - key: syncStatus
        operator: notEq
        value: MISSING
oder Mindestens eine der Unterklauseln muss wahr sein, damit das Ergebnis des Ausdrucks wahr ist.

Wird als „true“ ausgewertet, gleich ob „properties.powerState“ ON oder OFF ist.

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

Operatoren

Operator Beschreibung Beispiel
eq Gleich. Sucht nach einer genauen Übereinstimmung.

Wird als „true“ ausgewertet, wenn „properties.powerState“ gleich ON ist.

matchExpression:
  - and:
      - key: properties.powerState
        operator: eq
        value: ON
notEq Ungleich. Vermeidet eine exakte Übereinstimmung.

Wird als „true“ ausgewertet, wenn „properties.powerState“ nicht OFF ist.

matchExpression:
  - and:
      - key: properties.powerState
        operator: notEq
        value: OFF
hasAny Sucht nach einer Übereinstimmung in einer Objektsammlung.

Wird als „true“ ausgewertet, wenn das Array „storage.disks“ ein EBS-Objekt mit 100 IOPS enthält.

matchExpression:
  - key: storage.disks
    operator: hasAny
    value:
      matchExpression: 
        - and:
            - key: iops
              operator: eq
              value: 100
            - key: service
              operator: eq
              value: ebs
in Sucht nach einer Übereinstimmung in einem Satz von Werten.

Wird als „true“ ausgewertet, wenn „properties.powerState“ entweder OFF oder SUSPEND ist.

matchExpression:
  - and:
      - key: properties.powerState
        operator: in
        value: OFF, SUSPEND
notIn Vermeidet den Abgleich einer Gruppe von Werten.

Wird als „true“ ausgewertet, wenn „properties.powerState“ weder OFF noch SUSPEND ist.

matchExpression:
  - and:
      - key: properties.powerState
        operator: notIn
        value: OFF, SUSPEND
greaterThan Sucht nach einer Übereinstimmung über einem bestimmten Schwellenwert. Gilt nur für numerische Werte.

Wird als „true“ ausgewertet, wenn das erste Objekt im Array „storage.disks“ mehr als 50 IOPS aufweist.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: greaterThan
        value: 50
lessThan Sucht nach einer Übereinstimmung unter einem bestimmten Schwellenwert. Gilt nur für numerische Werte.

Wird als „true“ ausgewertet, wenn das erste Objekt im Array „storage.disks“ weniger als 200 IOPS aufweist.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: lessThan
        value: 200
greaterThanEquals Suchen Sie nach einer Übereinstimmung mit oder über einem bestimmten Schwellenwert. Gilt nur für numerische Werte.

Wird als „true“ ausgewertet, wenn das erste Objekt im Array „storage.disks“ 100 IOPS oder mehr aufweist.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: greaterThanEquals
        value: 100
lessThanEquals Suchen Sie nach einer Übereinstimmung mit oder unter einem bestimmten Schwellenwert. Gilt nur für numerische Werte.

Wird als „true“ ausgewertet, wenn das erste Objekt im Array „storage.disks“ 100 IOPS oder weniger aufweist.

matchExpression:
  - and:
      - key: storage.disks[0].iops
        operator: lessThanEquals
        value: 100
matchesRegex Verwendet einen regulären Ausdruck für die Suche nach einer Übereinstimmung.

Wird als „true“ ausgewertet, wenn „properties.zone“ gleich „us-east-1a“ oder „us-east-1c“ ist.

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

Beispiele

Der folgende Kriterienausdruck wird als „true“ ausgewertet, wenn „properties.tags“ den Tag-Schlüssel key1 und den Wert value1 enthält.

Der äußere Ausdruck verwendet hasAny, da „properties.tags“ ein Array ist und die Auswertung immer dann als „true“ erfolgen soll, wenn „key1=value1“ in einem der Schlüssel-Wert-Paare im Array angezeigt wird.

Im inneren Ausdruck gibt es zwei Klauseln, eine für das Schlüsselfeld und eine für das Wertefeld. Das Array „properties.tags“ enthält Schlüssel-Wert-Tag-Paare, und Sie müssen sowohl die Schlüssel- als auch die Wertefelder abgleichen.

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

Der folgende Kriterienausdruck ähnelt dem vorherigen Beispiel, wird jedoch jetzt immer dann als „true“ ausgewertet, wenn „properties.tags“ entweder das Tag „key1=value1“ oder „key2=value2“ enthält.

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