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.
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