如何解决多标签意外行为的 Azure 策略
我正在尝试设置 Azure 策略以在创建时在资源组上强制执行多个标记。但是,该策略以一种奇怪的方式运行,即使只添加了一个标签 (tagName1),也会创建 RG 组。我不太确定出了什么问题,因为根据我的理解,allOf 表现为 AND 运算符,并且只有在添加了所有标签后才应创建 RG 组。
我需要一些有关如何调试此问题的指导。谢谢
我的政策:
{
"mode": "All","policyRule": {
"if": {
"allOf": [
{
"field": "[concat('tags[',parameters('tagName1'),']')]","exists": "false"
},{
"field": "[concat('tags[',parameters('tagName2'),parameters('tagName3'),parameters('tagName4'),parameters('tagName5'),{
"field": "type","equals": "Microsoft.Resources/subscriptions/resourceGroups"
}
]
},"then": {
"effect": "deny"
}
},"parameters": {
"tagName1": {
"type": "String","Metadata": {
"displayName": "Tag Name","description": "Name of the tag,such as 'environment'"
}
},"tagName2": {
"type": "String","tagName3": {
"type": "String","tagName4": {
"type": "String","tagName5": {
"type": "String",such as 'environment'"
}
}
}
}
解决方法
仅当所有标签 (1-5) 都不存在时,当前条件才会拒绝创建/更新请求。
使用 anyOf 而不是 allOf。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。