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

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

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

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

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

運算式語法

運算式的語法如下:

subject operator [argument]
主旨

要評估的屬性或欄位。

agentConnected

依容器代理程式連線狀態選取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 執行個體 ID 選取容器EC2執行個體。

有效運算子: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執行個體IDs。

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