Como alternativa a la lista de condiciones simples de Cloud Assembly, el editor avanzado permite agrupar expresiones de criterios más complejas para controlar el momento en que la acción debe estar disponible.
Al crear una nueva acción personalizada, seleccione Requiere condición y Usar editor avanzado. A continuación, introduzca la expresión de criterios que desee.
La expresión es una cláusula o una lista de cláusulas, cada una con el formato clave-operador-valor. En la figura anterior, se muestran los criterios en los que el destino debe estar encendido y presente.
Cláusulas
Cláusula | Descripción | Ejemplo |
---|---|---|
and | Todas las subcláusulas deben cumplirse para que el resultado de la expresión sea true. | Se evalúa como true solo cuando el valor de properties.powerState es ON y el valor de syncStatus no es MISSING. matchExpression: - and: - key: properties.powerState operator: eq value: ON - key: syncStatus operator: notEq value: MISSING |
or | Una o varias de las subcláusulas deben cumplirse para que el resultado de la expresión sea true. | Se evalúa como true independientemente de que el valor de properties.powerState sea ON u OFF. matchExpression: - or: - key: properties.powerState operator: eq value: ON - key: properties.powerState operator: eq value: OFF |
Operadores
Operador | Descripción | Ejemplo |
---|---|---|
eq | Igual. Busque una coincidencia exacta. | Se evalúa como true cuando el valor de properties.powerState es ON. matchExpression: - and: - key: properties.powerState operator: eq value: ON |
notEq | No igual. Evite una coincidencia exacta. | Se evalúa como true cuando el valor de properties.powerState no es OFF. matchExpression: - and: - key: properties.powerState operator: notEq value: OFF |
hasAny | Busque una coincidencia en una colección de objetos. | Se evalúa como true cuando la matriz storage.disks incluye un objeto EBS de 100 IOPS. matchExpression: - key: storage.disks operator: hasAny value: matchExpression: - and: - key: iops operator: eq value: 100 - key: service operator: eq value: ebs |
in | Busque una coincidencia en un conjunto de valores. | Se evalúa como true cuando el valor de properties.powerState es OFF o SUSPEND. matchExpression: - and: - key: properties.powerState operator: in value: OFF, SUSPEND |
notIn | Evite la coincidencia con un conjunto de valores. | Se evalúa como true cuando el valor de properties.powerState no es OFF ni SUSPEND. matchExpression: - and: - key: properties.powerState operator: notIn value: OFF, SUSPEND |
greaterThan | Busque una coincidencia superior a un umbral determinado. Solo se aplica a valores numéricos. | Se evalúa como true cuando el primer objeto de la matriz storage.disks tiene IOPS superiores a 50. matchExpression: - and: - key: storage.disks[0].iops operator: greaterThan value: 50 |
lessThan | Busque una coincidencia inferior a un umbral determinado. Solo se aplica a valores numéricos. | Se evalúa como true cuando el primer objeto de la matriz storage.disks tiene IOPS inferiores a 200. matchExpression: - and: - key: storage.disks[0].iops operator: lessThan value: 200 |
greaterThanEquals | Busque una coincidencia igual o superior a un umbral determinado. Solo se aplica a valores numéricos. | Se evalúa como true cuando el primer objeto de la matriz storage.disks tiene IOPS de 100 o más. matchExpression: - and: - key: storage.disks[0].iops operator: greaterThanEquals value: 100 |
lessThanEquals | Busque una coincidencia igual o inferior a un umbral determinado. Solo se aplica a valores numéricos. | Se evalúa como true cuando el primer objeto de la matriz storage.disks tiene IOPS de 100 o menos. matchExpression: - and: - key: storage.disks[0].iops operator: lessThanEquals value: 100 |
matchesRegex | Utilice una expresión regular para buscar una coincidencia. | Se evalúa como true cuando el valor de properties.zone es us-east-1a o us-east-1c. matchExpression: - and: - key: properties.zone operator: matchesRegex value: (us-east-1)+(a|c){1,2} |
Ejemplos
La siguiente expresión de criterios se evalúa como true cuando properties.tags incluye una etiqueta de clave key1
y un valor value1
.
La expresión externa utiliza hasAny
debido a que properties.tags es una matriz y se desea evaluar como true cuando se muestra key1=value1 en cualquiera de los pares clave-valor de la matriz.
En la expresión interna, hay dos cláusulas: una para el campo de clave y otra para el campo de valor. La matriz properties.tags contiene pares de etiquetado clave-valor y debe coincidir con los campos de clave y valor.
matchExpression: - key: properties.tags operator: hasAny value: matchExpression: - and: - key: key operator: eq value: key1 - key: value operator: eq value: value1
La siguiente expresión de criterios es similar al ejemplo anterior, pero ahora se evalúa como true cuando properties.tags incluye una etiqueta 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