用戶端群組
用戶端群組可讓您根據共同點將一組用戶端分組在一起。 用戶端群組的主要目的是讓授權更容易設定。 您可以授權給用戶端群組發佈或訂閱主題空間。 用戶端群組中的所有用戶端都有權在主題空間上執行發佈或訂閱動作。
在命名空間中,我們提供名為 "$all" 的預設用戶端群組。 用戶端群組包含命名空間中的所有用戶端。 為了方便測試,您可以使用 $all 來設定權限。
注意
- 用戶端群組名稱長度可介於 3-50 個字元
- 用戶端群組名稱可包含英數字元、連字號 (-),不可包含空格
- 每個命名空間的用戶端群組名稱都必須是唯一的
$all
是包含命名空間中所有用戶端的預設用戶端群組。 此群組無法編輯或刪除
用戶端群組考量
您應將用戶端群組數控制為少量,以方便管理權限。
目前,每個命名空間最多支援 10 個用戶端群組。
將用戶端分組時,請確定可以更輕鬆地重複使用群組跨多個主題空間進行發佈和訂閱。 為此,請務必通盤考量端對端案例,以識別每個用戶端發佈或訂閱的主題。
建議您識別案例的共通性,以避免用戶端群組和主題空間過於零散。 請設定夠通泛的用戶端屬性,以便進行群組,並避免高度複雜的群組查詢。
如何建立用戶端群組查詢?
若要設定用戶端群組,您必須建置查詢,根據用戶端的屬性值來篩選一組用戶端。
以下是一些範例查詢:
- (attributes.sensors = "motion" or attributes.sensors = "humidity") or attributes.type = "home-sensors"
- attributes.sensors IN ["motion", "humidity", "temperature"] and attributes.floor <= 5
- authenticationName IN ['client1', 'client2']
在群組查詢中,允許下列運算元:
- 相等運算子 "="
- 括弧 "()" 以分類運算式來控制作業順序
- 邏輯運算子 "and"、"or"、"and" 的優先順序高於 "or"
- 兩種形式的不等於運算子 "<>" 和 "!="
- 小於 "<"、大於 ">"、小於等於 "<="、大於等於 ">=" 用於長整數值
- "IN" 用來與一組值比較
範例用戶端群組結構描述
{
"properties": {
"description": "Description of client group",
"query": "attributes.b IN ['a', 'b', 'c']"
}
}
Azure 入口網站設定
使用下列步驟建立用戶端群組:
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
下一步
- 了解主題空間