Amazon ECS タスク用のコンテナインスタンスを定義する式を作成する
クラスタークエリは、オブジェクトをグループ化できる式です。例えば、アベイラビリティーゾーン、インスタンスタイプ、カスタムメタデータなどの属性でコンテナインスタンスをグループ化できます。詳細については、「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 タスクをグループ化する 」を参照してください。
演算子
比較演算子。以下の演算子がサポートされています。
演算子 |
説明 |
---|---|
==, が |
文字列が等価 |
!=、not_equals |
文字列が不等価 |
>、greater_than |
以上 |
>=、greater_than_equal |
以上 |
<、less_than |
未満 |
<=、less_than_equal |
以下 |
exists |
対象が存在 |
!exists、not_exists |
サブジェクトが存在しません |
in |
引数リストの値 |
!in、not_in |
引数リストにない値 |
=~、matches |
パターンが一致 |
!~、not_matches |
パターンが不一致 |
注記
1 つの式に括弧を含めることはできません。ただし、複合式で優先順位を指定するために括弧を使用できます。
引数
多くの演算子は、引数がリテラル値です。
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)
例: 実行中のタスクの数
次の式は、1 つのタスクのみを実行しているインスタンスを選択します。
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']