Позволяет ли политика Azure, использующая JSON, проверять расширение виртуальной машины по его имени?
В настоящее время я использую следующее условие exsistance:
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Compute/virtualMachines/extensions/instanceView.name",
"equals": "customextensionname"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Compute"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/provisioningState",
"equals": "Succeeded"
}
]
Я попытался использовать расширение / имя, и я получаю сообщение об ошибке, что оно недоступно. Моя политика проверяет все виртуальные машины Windows, но я не уверен, как проверить имя расширения. Он есть, но сообщает о несовместимости и об отсутствии значения для instanceView.name.
1 ответ
Я думаю, что это должно быть что-то вроде этого:
{
"field": "type",
"equals": "Microsoft.Compute/VirtualMachines/extensions"
},
{
"not": {
"field": "name",
"equals": "customextensionname"
}
}
Вам не нужен псевдоним для name
. Это поддерживаемое поле верхнего уровня. В рамках условия существования он будет ссылаться на связанный ресурс - расширение в вашем случае, а не на оцениваемый ресурс.
Ваше условие существования будет работать так:
"existenceCondition": {
"allOf": [
{
"field": "name",
"equals": "customextensionname"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Compute"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/provisioningState",
"equals": "Succeeded"
}
]