Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

クラスタークエリ言語

クラスタークエリは、オブジェクトをグループ化できる式です。たとえば、アベイラビリティーゾーン、インスタンスタイプ、カスタムメタデータなどの属性でコンテナインスタンスをグループ化できます。詳細については、「属性」を参照してください。

コンテナインスタンスのグループを定義した後、グループに基づいてコンテナインスタンスのタスクを配置するように Amazon ECS をカスタマイズできます。詳細については、「タスクの実行」および「サービスの作成」を参照してください。また、コンテナインスタンスをリスト表示する際にグループフィルタを適用できます。詳細については、「属性でフィルタリングする」を参照してください。

式の構文

式の構文は次のとおりです。

subject operator [argument]

Subject

評価する属性またはフィールド。

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

属性でコンテナインスタンスを選択します。詳細については、「属性」を参照してください。

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

コンテナインスタンスをタスクグループで選択します。詳細については、「タスクグループ」を参照してください。

演算子

比較演算子。以下の演算子がサポートされています。

演算子 説明

==, が

文字列が等価

!=、not_equals

文字列が不等価

>、greater_than

以上

>=、greater_than_equal

以上

<、less_than

未満

<=、less_than_equal

以下

exists

対象が存在

!exists、not_exists

サブジェクトが存在しない

引数リストの値

!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

例: タスクのアンチアフィニティ

次の式は、database グループのタスクをホストしないインスタンスを選択します。

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']

このページの内容: