Creación de expresiones para definir instancias de contenedor para las tareas de Amazon ECS
Las consultas de clúster son expresiones que permiten agrupar objetos. Por ejemplo, puede agrupar instancias de contenedor por atributos tales como zona de disponibilidad, tipo de instancia o metadatos personalizados. Para obtener más información, consulte Atributos de instancias de contenedor de Amazon ECS.
Después de haber definido un grupo de instancias de contenedor, puede personalizar Amazon ECS para que ubique tareas en instancias de contenedor basadas en grupo. Para obtener más información, consulte Ejecución de una aplicación como tarea de Amazon ECS y Creación de un servicio de Amazon ECS mediante la consola. También puede aplicar un filtro de grupo al mostrar una lista de instancias de contenedor.
Sintaxis de expresiones
Las expresiones tienen la siguiente sintaxis:
subject
operator
[argument
]
Asunto
El atributo o campo que se va a evaluar.
agentConnected
-
Seleccione instancias de contenedor por el estado de conexión del agente de contenedor de Amazon ECS. Puede utilizar este filtro para buscar las instancias cuyos agentes de contenedor están desconectados.
Los operadores válidos son: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)
agentVersion
-
Seleccione instancias de contenedor según la versión del agente de contenedor de Amazon ECS. Puede utilizar este filtro para buscar las instancias que ejecutan versiones obsoletas del agente de contenedor de Amazon ECS.
Los operadores válidos son: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
attribute:
attribute-name
-
Selecciona instancias de contenedor según el atributo. Para obtener más información, consulte Atributos de instancias de contenedor de Amazon ECS.
ec2InstanceId
-
Seleccione instancias de contenedor por el ID de las instancias de Amazon EC2.
Los operadores válidos son: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)
registeredAt
-
Selecciona instancias de contenedor por la fecha de registro de la instancia de contenedor. Puede utilizar este filtro para encontrar las instancias que se acaban de registrar o las instancias que son muy antiguas.
Los operadores válidos son: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
Los formatos de fecha válidos son: 2018-06-18T22:28:28+00:00, 2018-06-18T22:28:28Z, 2018-06-18T22:28:28, 2018-06-18
runningTasksCount
-
Selecciona instancias de contenedor según el número de tareas en ejecución. Puede utilizar este filtro para encontrar las instancias que estén vacías o casi vacías (con pocas tareas en ejecución).
Los operadores válidos son: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
task:group
-
Selecciona instancias de contenedor según el grupo de tareas. Para obtener más información, consulte Agrupación de tareas relacionadas con Amazon ECS .
Operador
El operador de comparación. Se admiten los siguientes operadores.
Operador |
Descripción |
---|---|
==, equals |
Igualdad de cadena |
!=, not_equals |
Desigualdad de cadena |
>, greater_than |
Mayor que |
>=, greater_than_equal |
Mayor o igual que |
<, less_than |
Menor que |
<=, less_than_equal |
Menor o igual que |
exists |
El asunto existe |
!exists, not_exists |
El asunto no existe |
in |
El valor está en la lista de argumentos |
!in, not_in |
El valor no está en la lista de argumentos |
=~, matches |
Coincidencia de patrón |
!~, not_matches |
No hay coincidencia de patrón |
nota
Una expresión única no puede contener paréntesis. Sin embargo, se pueden utilizar paréntesis para especificar la prioridad en las expresiones compuestas.
Argumento
Para muchos operadores, el argumento es un valor literal.
Los operadores in
y not_in
esperan una lista de argumentos como argumento. Una lista de argumentos se especifica del siguiente modo:
[argument1, argument2, ..., argumentN]
Los operadores matches y not_matches esperan un argumento que se ajuste a la sintaxis de la expresión regular Java. Para obtener más información, consulte java.util.regex.Pattern
Expresiones compuestas
Puede combinar expresiones utilizando los siguientes operadores booleanos:
-
&&, y
-
||, o bien
-
!, not
Puede especificar prioridad utilizando paréntesis:
(expression1 or expression2) and expression3
Expresiones de ejemplo
A continuación se incluyen expresiones de ejemplo.
Ejemplo: igualdad de cadena
La expresión siguiente selecciona las instancias con el tipo de instancia especificado.
attribute:ecs.instance-type == t2.small
Ejemplo: lista de argumentos
La expresión siguiente selecciona las instancias en la zona de disponibilidad us-east-1a o us-east-1b.
attribute:ecs.availability-zone in [us-east-1a, us-east-1b]
Ejemplo: expresiones compuestas
La siguiente expresión selecciona las instancias G2 que no están en la zona de disponibilidad us-east-1d.
attribute:ecs.instance-type =~ g2.* and attribute:ecs.availability-zone != us-east-1d
Ejemplo: afinidad de tareas
La expresión siguiente selecciona las instancias que alojan tareas en el grupo service:production
.
task:group == service:production
Ejemplo: antiafinidad de tareas
La siguiente expresión selecciona las instancias que no alojan tareas en el grupo de base de datos.
not(task:group == database)
Ejemplo: Recuento de tareas en ejecución
La expresión siguiente selecciona las instancias que solo están ejecutando una tarea.
runningTasksCount == 1
Ejemplo: versión del agente de contenedor de Amazon ECS
La expresión siguiente selecciona las instancias que están ejecutando una versión del agente de contenedor anterior a la 1.14.5.
agentVersion < 1.14.5
Ejemplo: Hora de registro de las instancias
La expresión siguiente selecciona las instancias que se han registrado antes del 13 de febrero de 2018.
registeredAt < 2018-02-13
Ejemplo: ID de instancias de Amazon EC2
Esta expresión selecciona las instancias con los siguientes ID de instancias de Amazon EC2.
ec2InstanceId in ['i-abcd1234', 'i-wxyx7890']