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