Como criar condições avançadas para ações personalizadas do
Automation Assembler

Como alternativa à lista de condições simples no
Automation Assembler
, o editor avançado permite montar expressões de critérios mais complexas para controlar quando a ação está disponível.
Ao criar uma nova ação de recurso, selecione
Requer uma condição
e
Usar editor avançado
. Em seguida, insira a expressão de critérios que você deseja.
Editor avançado de critérios de ações personalizadas
A expressão é uma cláusula ou uma lista de cláusulas, cada uma delas no formato chave-operador-valor. A figura anterior mostra critérios onde o destino deve ser ligado e estar presente.

Cláusulas

Cláusula
Descrição
Exemplo
e
Todas as subcláusulas devem ser verdadeiras para que o resultado da expressão seja verdadeiro.
Avalie como verdadeiro somente quando properties.powerState estiver LIGADO e syncStatus não estiver AUSENTE.
matchExpression: - and: - key: properties.powerState operator: eq value: ON - key: syncStatus operator: notEq value: MISSING
ou
Uma ou mais subcláusulas devem ser verdadeiras para que o resultado da expressão seja verdadeiro.
Avalie como verdadeiro se properties.powerState estiver LIGADO ou DESLIGADO.
matchExpression: - or: - key: properties.powerState operator: eq value: ON - key: properties.powerState operator: eq value: OFF

Operadores

Operador
Descrição
Exemplo
eq
Igual. Procure uma combinação exata.
Avalie como verdadeiro quando properties.powerState estiver LIGADO.
matchExpression: - and: - key: properties.powerState operator: eq value: ON
notEq
Não igual. Evite uma combinação exata.
Avalie como verdadeiro quando properties.powerState não estiver DESLIGADO.
matchExpression: - and: - key: properties.powerState operator: notEq value: OFF
hasAny
Procure uma combinação em uma coleção de objetos.
Avalie como verdadeiro quando a matriz storage.disks inclui um objeto 100 IOPS EBS.
matchExpression: - key: storage.disks operator: hasAny value: matchExpression: - and: - key: iops operator: eq value: 100 - key: service operator: eq value: ebs
in
Procure uma combinação em um conjunto de valores.
Avalie como verdadeiro quando properties.powerState estiver DESLIGADO ou SUSPENSO.
matchExpression: - and: - key: properties.powerState operator: in value: OFF, SUSPEND
notIn
Evite corresponder a um conjunto de valores.
Avalie como verdadeiro quando properties.powerState não estiver DESLIGADO nem SUSPENSO.
matchExpression: - and: - key: properties.powerState operator: notIn value: OFF, SUSPEND
greaterThan
Procure uma combinação acima de um determinado limite. Aplica-se apenas a valores numéricos.
Avalie como verdadeiro quando o primeiro objeto na matriz storage.disks tiver IOPS sobre 50.
matchExpression: - and: - key: storage.disks[0].iops operator: greaterThan value: 50
lessThan
Procure uma combinação sob um determinado limite. Aplica-se apenas a valores numéricos.
Avalie como verdadeiro quando o primeiro objeto na matriz storage.disks tiver IOPS sob 200.
matchExpression: - and: - key: storage.disks[0].iops operator: lessThan value: 200
greaterThanEquals
Procure uma combinação em ou acima de um determinado limite. Aplica-se apenas a valores numéricos.
Avalie como verdadeiro quando o primeiro objeto na matriz storage.disks tiver IOPS de 100 ou superior.
matchExpression: - and: - key: storage.disks[0].iops operator: greaterThanEquals value: 100
lessThanEquals
Procure uma combinação em ou abaixo de um determinado limite. Aplica-se apenas a valores numéricos.
Avalie como verdadeiro quando o primeiro objeto na matriz storage.disks tiver IOPS de 100 ou inferior.
matchExpression: - and: - key: storage.disks[0].iops operator: lessThanEquals value: 100
matchesRegex
Use uma expressão regular para procurar uma combinação.
Avalie como verdadeiro quando a properties.zone for us-east-1a ou us-east-1c.
matchExpression: - and: - key: properties.zone operator: matchesRegex value: (us-east-1)+(a|c){1,2}

Exemplos

A expressão de critérios a seguir é avaliada como verdadeira quando properties.tags inclui uma tag de chave
key1
e valor
value1
.
A expressão externa usa
hasAny
porque properties.tags é uma matriz e você deseja avaliar como verdadeiro sempre que key1=value1 aparece em qualquer um dos pares chave-valor na matriz.
Na expressão interna, há duas cláusulas: uma para o campo de chave e uma para o campo de valor. A matriz properties.tags contém pares de marcação chave-valor e você precisa corresponder aos campos chave e valor.
matchExpression: - key: properties.tags operator: hasAny value: matchExpression: - and: - key: key operator: eq value: key1 - key: value operator: eq value: value1
A expressão de critérios a seguir é semelhante ao exemplo anterior, mas agora é avaliada como verdadeira sempre que properties.tags incluir uma tag de key1=value1 ou 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