建立運算式以定義 Amazon ECS 任務的容器執行個體 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立運算式以定義 Amazon ECS 任務的容器執行個體

叢集查詢是可讓您將物件分組的運算式。例如,您可以依屬性 (例如可用區域、執行個體類型或自訂中繼資料) 將容器執行個體分組。如需詳細資訊,請參閱 Amazon ECS 容器實例屬性

在您定義一組容器執行個體之後,即可自訂 Amazon ECS 以根據群組在容器執行個體上放置任務。如需詳細資訊,請參閱 以 Amazon ECS 任務的形式執行應用程式使用主控台建立服務。您也可以在列出容器執行個體時套用群組篩選條件。如需詳細資訊,請參閱 使用主控台依屬性進行篩選

運算式語法

運算式的語法如下:

subject operator [argument]
主旨

要評估的屬性或欄位。

agentConnected

依 Amazon ECS 容器代理程式連線狀態來選取容器執行個體。您可以使用此篩選條件來搜尋具有代理程式已中斷連線的執行個體容器。

有效運算子:equals (==)、not_equals (!=)、in、not_in (!in)、matches (=~)、not_matches (!~)

agentVersion

依 Amazon ECS 容器代理程式版本來選取容器執行個體。您可以使用此篩選條件,尋找正在執行過期版本 Amazon ECS 容器代理程式的執行個體。

有效運算子:equals (==)、not_equals (!=)、greater_than (>)、greater_than_equal (>=)、less_than (<)、less_than_equal (<=)

attribute:attribute-name

依屬性選取容器執行個體。如需詳細資訊,請參閱 Amazon ECS 容器實例屬性

ec2InstanceId

依 Amazon EC2 執行個體 ID 選取容器執行個體。

有效運算子:equals (==)、not_equals (!=)、in、not_in (!in)、matches (=~)、not_matches (!~)

registeredAt

依容器執行個體註冊日期來選取容器執行個體。您可以使用此篩選條件,尋找新註冊執行個體或非常舊的執行個體。

有效運算子:equals (==)、not_equals (!=)、greater_than (>)、greater_than_equal (>=)、less_than (<)、less_than_equal (<=)

有效日期格式:2018-06-18T22:28:28+00:00, 2018-06-18T22:28:28Z, 2018-06-18T22:28:28, 2018-06-18

runningTasksCount

依執行中的任務數量來選取容器執行個體。您可以使用此篩選條件來尋找空白或接近空白 (在其上執行的任務很少) 的執行個體。

有效運算子:equals (==)、not_equals (!=)、greater_than (>)、greater_than_equal (>=)、less_than (<)、less_than_equal (<=)

task:group

依任務群組選取容器執行個體。如需詳細資訊,請參閱 群組相關的 Amazon ECS 任務

運算子

比較運算子。下列是支援的運算子。

運算子

描述

==、equals

字串相等

!=、not_equals

字串不相等

>、greater_than

大於

>=、greater_than_equal

大於或等於

<、less_than

小於

<=、less_than_equal

小於或等於

exists

主旨存在

!exists、not_exists

主旨不存在

in

引數清單中的值

!in、not_in

不在引數清單中的值

=~、matches

模式相符

!~、not_matches

模式不相符

注意

單一運算式不能包含括號。不過,可以使用括號指定複合運算式中的優先順序。

引數

對於許多運算子而言,引數是一種常值。

innot_in 運算子需要有參數清單做為引數。您可以指定引數清單,如下所示:

[argument1, argument2, ..., argumentN]

matches 和 not_matches 運算子需要有符合 Java 一般運算式語法的引數。如需詳細資訊,請參閱 java.util.regex.Pattern

複合運算式

您可以使用下列布林值運算子來合併運算式:

  • &&, 和

  • ||, 或

  • !, 非

您可以使用括號來指定優先順序:

(expression1 or expression2) and expression3

範例運算式

下列是範例運算式。

範例:字串相等

下列運算式會選取具有指定之執行個體類型的執行個體。

attribute:ecs.instance-type == t2.small
範例:引數清單

下列運算式會選取 us-east-1a 或 us-east-1b 可用區域中的執行個體。

attribute:ecs.availability-zone in [us-east-1a, us-east-1b]
範例:複合運算式

下列運算式會選取不在 us-east-1d 可用區域中的 G2 執行個體。

attribute:ecs.instance-type =~ g2.* and attribute:ecs.availability-zone != us-east-1d
範例:任務親和性

下列運算式會選取在 service:production 群組中託管任務的執行個體。

task:group == service:production
範例:任務反親和性

下列運算式會選取未在資料庫群組中託管任務的執行個體。

not(task:group == database)
範例:執行中任務計數

下列運算式會選取僅執行一項任務的執行個體。

runningTasksCount == 1
範例:Amazon ECS 容器代理程式版本

下列運算式會選取正在執行低於 1.14.5 版本容器代理程式的執行個體。

agentVersion < 1.14.5
範例:執行個體註冊時間

下列運算式會選取在 2018 年 2 月 13 日之前註冊的執行個體。

registeredAt < 2018-02-13
範例:Amazon EC2 執行個體 ID

下列運算式會選取具有下列 Amazon EC2 執行個體 ID 的執行個體。

ec2InstanceId in ['i-abcd1234', 'i-wxyx7890']