我正在使用此处记录的JSON结构编码Azure策略:https://docs.microsoft.com/en-us/azure/governance/policy/concepts/definition-structure
有人可以确认是否可以使用星号通配符和“?”,“#”或“。”。在相同的陈述。就像我所说的,我认为您只能在同类比较中使用星号,而在其他匹配项中只能使用星号。
等 非常感谢
我的标签字段必须以4个数字开头,然后是分号,但此后我不在乎编码的内容。理想情况是
####;*
但是我发现我必须编码 ####;。 要么 ####; .. 要么 ####; ... 等
{
"if": {
"allOf": [
{
"field": "type",
"in": "[parameters('type')]"
},
{
"not": {
"anyOf": [
{
"field": "[concat('tags[','tag_name', ']')]",
"match": "####;"
},
{
"field": "[concat('tags[','tag_name', ']')]",
"match": "####;."
},
{
"field": "[concat('tags[','tag_name', ']')]",
"match": "####;.."
},
{
"field": "[concat('tags[','tag_name', ']')]",
"match": "####;..."
},
{
"field": "[concat('tags[','tag_name', ']')]",
"match": "####;...."
},
{
"field": "[concat('tags[','tag_name', ']')]",
"match": "####;....."
},
{
"field": "[concat('tags[','tag_name', ']')]",
"match": "####;......"
},
等 有没有更好的方法可以做到这一点?
答案 0 :(得分:0)
您正确的说,您不能在match
子句中使用星号通配符(*)。
但是,您可以将value clause与take and field function结合使用以达到所需的结果:
{
"if": {
"allOf": [
{
"field": "type",
"in": "[parameters('type')]"
},
{
"not": {
"value": "[take(field('tags[tag_name]'), 5)]",
"match": "####;"
}
}
]
},
"then": {
"effect": "audit"
}
}