Я хочу создать собственную Azure политику JSON, которая считывает ресурсы Azure и следит за тем, чтобы она соответствовала нашему стандартному соглашению об именах. Например, я пытаюсь настроить его для виртуальных машин, облачных служб и кэша Redis.
{
"if": {
"allof": [
{
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
{
"not": {
"anyOf": [
{
"field": "name",
"match": "gz?????????#?##"
}
]
}
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
"if": {
"allof": [
{
"field": "type",
"equals": "Microsoft.ClassicCompute/domainNames"
},
{
"not": {
"anyOf": [
{
"field": "name",
"match": "GZ?-??????-??#-???-??????-###"
}
]
}
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
"if": {
"allof": [
{
"field": "type",
"equals": "Microsoft.Cache/Redis"
},
{
"not": {
"anyOf": [
{
"field": "name",
"match": "gz?????????#???###"
}
]
}
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
}
Не думаю, что Azure позволяет Несколько IF, например, как я пытаюсь настроить его. Я хочу, чтобы это было так:
Если ресурс является виртуальной машиной и не соответствует этому соглашению, то выполните аудит. Если ресурс представляет собой облачную службу и не соответствует этому соглашению, выполните аудит. Если ресурсом является Redis-кеш и он не соответствует этому соглашению, то аудит.