In alternativa all'elenco di condizioni semplici in Automation Assembler, l'editor avanzato consente di assemblare espressioni di criteri più complesse per controllare quando l'azione è disponibile.
Quando si crea una nuova azione risorsa, selezionare Richiede condizione e Usa editor avanzato. Immettere quindi l'espressione dei criteri desiderata.
L'espressione è una clausola o un elenco di clausole, ognuna delle quali è nel formato key-operator-value. Nella figura precedente sono illustrati i criteri in cui la destinazione deve essere accesa e presente.
Clausole
Clausola | Descrizione | Esempio |
---|---|---|
e | Affinché il risultato dell'espressione sia true, tutte le clausole secondarie devono essere true. | Viene valutato come true solo quando properties.powerState è ON e syncStatus non è MISSING. matchExpression: - and: - key: properties.powerState operator: eq value: ON - key: syncStatus operator: notEq value: MISSING |
o | Affinché il risultato dell'espressione sia true, una o più clausole secondarie devono essere true. | Viene valutato come true se properties.powerState è ON oppure OFF. matchExpression: - or: - key: properties.powerState operator: eq value: ON - key: properties.powerState operator: eq value: OFF |
Operatori
Operatore | Descrizione | Esempio |
---|---|---|
eq | Uguale. Cerca una corrispondenza esatta. | Viene valutato come true quando properties.powerState è ON. matchExpression: - and: - key: properties.powerState operator: eq value: ON |
notEq | Non uguale. Evita una corrispondenza esatta. | Viene valutato come true quando properties.powerState non è OFF. matchExpression: - and: - key: properties.powerState operator: notEq value: OFF |
hasAny | Cerca una corrispondenza in una raccolta di oggetti. | Viene valutato come true quando l'array storage.disks include un oggetto EBS di 100 IOPS. matchExpression: - key: storage.disks operator: hasAny value: matchExpression: - and: - key: iops operator: eq value: 100 - key: service operator: eq value: ebs |
in | Cerca una corrispondenza in un set di valori. | Viene valutato come true quando properties.powerState è OFF o SUSPEND. matchExpression: - and: - key: properties.powerState operator: in value: OFF, SUSPEND |
notIn | Evita una corrispondenze di un set di valori. | Viene valutato come true quando properties.powerState non è né OFF né SUSPEND. matchExpression: - and: - key: properties.powerState operator: notIn value: OFF, SUSPEND |
greaterThan | Cerca una corrispondenza oltre una determinata soglia. Si applica solo a valori numerici. | Viene valutato come true quando il primo oggetto nell'array storage.disks presenta un valore di IOPS superiore a 50. matchExpression: - and: - key: storage.disks[0].iops operator: greaterThan value: 50 |
lessThan | Cerca una corrispondenza inferiore a una determinata soglia. Si applica solo a valori numerici. | Viene valutato come true quando il primo oggetto nell'array storage.disks presenta un valore di IOPS inferiore a 200. matchExpression: - and: - key: storage.disks[0].iops operator: lessThan value: 200 |
greaterThanEquals | Cerca una corrispondenza pari o superiore a una determinata soglia. Si applica solo a valori numerici. | Viene valutato come true quando il primo oggetto nell'array storage.disks presenta un valore di IOPS pari o superiore a 100. matchExpression: - and: - key: storage.disks[0].iops operator: greaterThanEquals value: 100 |
lessThanEquals | Cerca una corrispondenza pari o inferiore a una determinata soglia. Si applica solo a valori numerici. | Viene valutato come true quando il primo oggetto nell'array storage.disks presenta un valore di IOPS pari o inferiore a 100. matchExpression: - and: - key: storage.disks[0].iops operator: lessThanEquals value: 100 |
matchesRegex | Utilizza un'espressione regolare per cercare una corrispondenza. | Viene valutato come true quando properties.zone è us-east-1a o us-east-1c. matchExpression: - and: - key: properties.zone operator: matchesRegex value: (us-east-1)+(a|c){1,2} |
Esempi
La seguente espressione di criteri viene valutata come true quando properties.tags include un tag con key key1
e value value1
.
L'espressione esterna utilizza hasAny
perché properties.tags è un array e si desidera che venga valutato come true ogni volta che key1=value1 viene visualizzato in qualsiasi coppia key-value nell'array.
Nell'espressione interna sono presenti due clausole, una per il campo key e una per il campo value. L'array properties.tags contiene coppie di tag key-value ed è necessario che corrisponda sia al campo key che al campo value.
matchExpression: - key: properties.tags operator: hasAny value: matchExpression: - and: - key: key operator: eq value: key1 - key: value operator: eq value: value1
La seguente espressione dei criteri è simile all'esempio precedente, ma ora viene valutata come true ogni volta che properties.tags include un tag key1=value1 o 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