本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立運算式以定義 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 |
模式不相符 |
注意
單一運算式不能包含括號。不過,可以使用括號指定複合運算式中的優先順序。
引數
對於許多運算子而言,引數是一種常值。
in
和 not_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']