Amazon Elastic Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

集群查询语言

集群查询是允许您将对象分组的表达式。例如,您可以按属性 (例如可用区、实例类型或自定义元数据) 将容器实例分组。有关更多信息,请参阅 属性

在您定义了一组容器实例后,可以自定义 Amazon ECS,根据组在容器实例上放置任务。有关更多信息,请参阅 正在运行的任务创建服务。您还可以在列出容器实例时应用组筛选条件。有关更多信息,请参阅 按属性筛选

表达式语法

表达式有如下语法:

subject operator [argument]

Subject

要评估的属性或字段。

您可以按属性选择容器实例。按如下所示指定属性:

attribute:attribute-name

注意

有关属性的更多信息,请参阅属性

您还可以按任务组选择容器实例。按如下所示指定任务组:

task:group

注意

有关任务组的更多信息,请参阅任务组

运算符

比较运算符。支持以下运算符。

运算符 描述

==, equals

字符串相等

!=, not_equals

字符串不相等

>, greater_than

大于

>=, greater_than_equal

大于或等于

<, less_than

小于

<=, less_than_equal

小于或等于

exists

主题存在

!exists, not_exists

主题不存在

值在参数列表中

!in, not_in

值不在参数列表中

=~, matches

模式匹配

!~, not_matches

模式不匹配

参数

很多运算符的参数是一个文本值。

in 和 not_in 运算符要求参数是一个参数列表。按如下所示指定参数列表:

[argument1, argument2, ..., argumentN]

matches 和 not_matches 运算符要求参数符合 Java 正则表达式的语法。有关更多信息,请参阅 java.util.regex.Pattern

复合表达式

您可以使用以下布尔值运算符组合表达式:

  • &&, 和

  • ||, 或者

  • !, 非

您可以使用圆括号指定优先顺序:

(expression1 or expression2) and expression3

表达式示例

以下为表达式示例。

示例:字符串相等

以下表达式选择具有指定实例类型的实例。

Copy
attribute:ecs.instance-type == t2.small

示例:参数列表

以下表达式选择在 us-east-1a 或 us-east-1b 可用区中的实例。

Copy
attribute:ecs.availability-zone in [us-east-1a, us-east-1b]

示例:复合表达式

以下表达式选择不在 us-east-1d 可用区内的 G2 实例。

Copy
attribute:ecs.instance-type =~ g2.* and attribute:ecs.availability-zone != us-east-1d

示例:任务关联

以下表达式选择在 service:production 组中托管任务的实例。

Copy
task:group == service:production

示例:任务反关联

以下表达式选择未在 database 组中托管任务的实例。

Copy
not(task:group == database)