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

クラスタークエリ言語

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

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

式の構文

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

subject operator [argument]

件名

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

属性でコンテナインスタンスを選択できます。次のように属性を指定します。

attribute:attribute-name

注記

属性の詳細については、「属性」を参照してください。

また、コンテナインスタンスをタスクグループで選択することもできます。次のようにタスクグループを指定します。

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)

このページの内容: