クライアント グループ
クライアント グループを使用すると、共通点に基づいて一連のクライアントをグループ化できます。 クライアント グループの主な目的は、承認の構成を簡単にすることです。 クライアント グループがトピック空間に発行またはサブスクライブすることを承認できます。 クライアント グループのすべてのクライアントが、トピック空間への発行またはサブスクライブ アクションの実行を承認されます。
名前空間には、"$all" という名前の既定のクライアント グループが用意されています。 クライアント グループには、名前空間内のすべてのクライアントが含まれます。 テストを簡単にするために、$all を使用してアクセス許可を構成できます。
注意
- クライアント グループ名は 3 ~ 50 文字の長さにできます
- クライアント グループ名には、英数字、ハイフン (-) を含めることができ、スペースは不可です
- クライアント グループ名は名前空間ごとに一意である必要があります
$all
は、名前空間内のすべてのクライアントを含む既定のクライアント グループです。 このグループは編集も削除もできません
クライアント グループに関する考慮事項
アクセス許可を管理できるように、クライアント グループの数を小さくして抑えてください。
現在、サポートされている名前空間あたりのクライアント グループは最大 10 個です。
クライアントをグループ化するときに、複数のトピック空間でグループを再利用して発行とサブスクライブを行う方が簡単になるようにします。 そのためには、エンド ツー エンドのシナリオ全体を考えて、すべてのクライアントが発行やサブスクライブを行うトピックを特定することが重要です。
クライアント グループとトピック空間の断片化を回避するために、シナリオ全体の共通点を特定することをお勧めします。 単純なグループ化を実現し、非常に複雑なグループ クエリを回避するのに十分汎用的なクライアント属性を設定します。
クライアント グループ クエリを作成する方法
クライアント グループを設定するには、属性値に基づいて一連のクライアントをフィルター処理するクエリを作成する必要があります。
いくつかのサンプル クエリを次に示します。
- (attributes.sensors = "motion" または attributes.sensors = "humidity") あるいは attributes.type = "home-sensors"
- attributes.sensors IN ["motion", "humidity", "temperature"] and attributes.floor <= 5
- authenticationName IN ['client1', 'client2']
グループ クエリでは、次のオペランドを使用できます。
- 等号 "="
- 式をグループ化して演算の順序を制御するためのかっこ "()"
- 論理演算子 "and"、"or"、"and" の優先順位は "or" よりも高い
- 2 つの形式の不等号 "<>" と "!="
- 長整数については、より小さい "<"、より大きい ">"、以下 "<="、以上 ">="
- 値のセットと比較する "IN"
サンプル クライアント グループ スキーマ
{
"properties": {
"description": "Description of client group",
"query": "attributes.b IN ['a', 'b', 'c']"
}
}
Azure portal の構成
次の手順を使用して、クライアント グループを作成します。
Azure portal でご使用の名前空間に移動します
[クライアント グループ] で、[+ クライアント グループ] を選択します。
クライアント グループ クエリを追加します。
[作成] を選択します。
Azure CLI の構成
次のコマンドを使用して、クライアント グループを作成/表示/削除します
クライアント グループを作成する
az eventgrid namespace client-group create -g myRG --namespace-name myNS -n myCG
クライアント グループを取得する
az eventgrid namespace client-group show -g myRG --namespace-name myNS -n myCG
クライアント グループを削除する
az eventgrid namespace client-group delete -g myRG --namespace-name myNS -n myCG
次の手順
- トピック空間について確認します