你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
客户端组
使用客户端组可以根据共性将一组客户端分组到一起。 客户端组的主要目的是简化授权的配置。 可以授权客户端组发布或订阅主题空间。 客户端组中的所有客户端都有权对主题空间执行发布或订阅操作。
在命名空间中,我们提供了一个名为“$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
后续步骤
- 了解主题空间