Como criar condições avançadas para ações personalizadas do Automation Assembler
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.
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.
|
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.
|
Operadores
Operador | Descrição | Exemplo |
---|---|---|
eq | Igual. Procure uma combinação exata. | Avalie como verdadeiro quando properties.powerState estiver LIGADO.
|
notEq | Não igual. Evite uma combinação exata. | Avalie como verdadeiro quando properties.powerState não estiver DESLIGADO.
|
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.
|
in | Procure uma combinação em um conjunto de valores. | Avalie como verdadeiro quando properties.powerState estiver DESLIGADO ou SUSPENSO.
|
notIn | Evite corresponder a um conjunto de valores. | Avalie como verdadeiro quando properties.powerState não estiver DESLIGADO nem SUSPENSO.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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