Linguagem de consulta de cluster - Amazon Elastic Container Service

Linguagem de consulta de cluster

As 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 obter mais informações, consulte . Attributes.

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 obter mais informações, consulte Executar uma tarefa autônoma e Criar um serviço do Amazon ECS. Você também poderá aplicar um filtro de grupo ao listar instâncias de contêiner. Para obter mais informações, consulte . Filtrar por atributo.

Sintaxe da expressão

As expressões têm a seguinte sintaxe:

subject operator [argument]

Subject

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. Você pode 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. Você pode 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 obter mais informações, consulte . Attributes.

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. Você pode 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. Você pode 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 obter mais informações, consulte . Grupos de tarefas.

Operator

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

em

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.

Argument

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

Você pode combinar expressões usando os seguintes operadores booleanos:

  • &&, e

  • ||, ou

  • !, not

Você pode 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']