Criação de expressões para definir instâncias de contêiner em tarefas do Amazon ECS
Consultas ao cluster são expressões que permitem agrupar objetos. Por exemplo, você pode agrupar instâncias de contêiner por atributos, como Zona de disponibilidade, tipo de instância ou metadados personalizados. Para ter mais informações, consulte Atributos de instância de contêiner do Amazon ECS.
Depois de definir um grupo de instâncias de contêiner, você pode personalizar o Amazon ECS para posicionar tarefas em instâncias de contêiner baseadas no grupo. Para ter mais informações, consulte Execução de uma aplicação como uma tarefa do Amazon ECS e Criação de um serviço do Amazon ECS usando o console. Também é possível aplicar um filtro de grupo ao listar instâncias de contêiner.
Sintaxe da expressão
As expressões têm a seguinte sintaxe:
subject
operator
[argument
]
Sujeito
O atributo ou o campo a ser avaliado.
agentConnected
-
Selecione instâncias de contêiner pelo status da conexão do agente de contêiner do Amazon ECS. É possível usar esse filtro para pesquisar instâncias com agentes de contêiner desconectados.
Operadores válidos: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)
agentVersion
-
Selecione instâncias de contêiner pela versão do agente de contêiner do Amazon ECS. É possível usar esse filtro para encontrar instâncias que estejam executando versões desatualizadas do agente de contêiner do Amazon ECS.
Operadores válidos: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
attribute:
attribute-name
-
Selecione instâncias de contêiner por atributo. Para ter mais informações, consulte Atributos de instância de contêiner do Amazon ECS.
ec2InstanceId
-
Selecione instâncias de contêiner pelo ID da instância do Amazon EC2.
Operadores válidos: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)
registeredAt
-
Selecione instâncias de contêiner na data de registro da instância de contêiner. É possível usar esse filtro para encontrar instâncias recém-registradas ou instâncias muito antigas.
Operadores válidos: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
Formatos de data válidos: 2018-06-18T22:28:28+00:00, 2018-06-18T22:28:28Z, 2018-06-18T22:28:28, 2018-06-18
runningTasksCount
-
Selecione instâncias de contêiner pelo número de tarefas em execução. É possível usar esse filtro para encontrar instâncias vazias ou quase vazias (algumas tarefas em execução).
Operadores válidos: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
task:group
-
Selecione instâncias de contêiner por grupo de tarefas. Para ter mais informações, consulte Tarefas do Amazon ECS relacionadas a grupos .
Operador
O operador de comparação. Os operadores a seguir são aceitos.
Operador |
Descrição |
---|---|
==, equals |
Igualdade de strings |
!=, not_equals |
Desigualdade de strings |
>, greater_than |
Maior que |
>=, greater_than_equal |
Maior ou igual a |
<, less_than |
Menor que |
<=, less_than_equal |
Menor ou igual a |
exists |
O sujeito existe |
!exists, not_exists |
O sujeito não existe |
in |
Valor na lista de argumentos |
!in, not_in |
Valor fora da lista de argumentos |
=~, matches |
Correspondência de padrão |
!~, not_matches |
Divergência de padrão |
nota
Uma expressão individual não pode conter parênteses. No entanto, os parênteses podem ser usados para especificar precedência em expressões compostas.
Argumento
Para muitos operadores, o argumento é um valor literal.
Os operadores in
e not_in
esperam uma lista de argumentos como argumento. Você especifica uma lista de argumentos da seguinte forma:
[argument1, argument2, ..., argumentN]
Os operadores matches e not_matches um argumento que se conforme à sintaxe de expressões regulares em Java. Para mais informações, consulte java.util.regex.Pattern.
Expressões compostas
É possível combinar expressões usando os operadores booleanos a seguir:
-
&&, e
-
||, ou
-
!, not
É possível especificar a precedência usando parênteses:
(expression1 or expression2) and expression3
Exemplo de expressões
Veja a seguir exemplos de expressões.
Exemplo: igualdade de strings
A expressão a seguir seleciona instâncias com o tipo de instância especificado.
attribute:ecs.instance-type == t2.small
Exemplo: lista de argumentos
A expressão a seguir seleciona instâncias na Zona de disponibilidade us-east-1a ou us-east-1b.
attribute:ecs.availability-zone in [us-east-1a, us-east-1b]
Exemplo: expressão composta
A expressão a seguir seleciona as instâncias G2 que não estiverem na zona de disponibilidade us-east-1d.
attribute:ecs.instance-type =~ g2.* and attribute:ecs.availability-zone != us-east-1d
Exemplo: afinidade de tarefas
A expressão a seguir seleciona as instâncias que são tarefas de hospedagem no grupo service:production
.
task:group == service:production
Exemplo: antiafinidade de tarefas
A expressão a seguir seleciona as instâncias que não são tarefas de hospedagem no grupo de bancos de dados.
not(task:group == database)
Exemplo: contagem de tarefas em execução
A expressão a seguir seleciona as instâncias que estão executando apenas uma tarefa.
runningTasksCount == 1
Exemplo: versão do agente de contêiner do Amazon ECS
A expressão a seguir seleciona instâncias que estão executando uma versão do agente de contêiner abaixo de 1.14.5.
agentVersion < 1.14.5
Exemplo: tempo de registro da instância
A expressão a seguir seleciona instâncias que foram registradas antes de 13 de fevereiro de 2018.
registeredAt < 2018-02-13
Exemplo: ID de instância do Amazon EC2
A expressão a seguir seleciona instâncias com os IDs de instância do Amazon EC2 a seguir.
ec2InstanceId in ['i-abcd1234', 'i-wxyx7890']