Я пытаюсь написать свою первую Azure политику.
Я хочу, чтобы она проверяла мои виртуальные машины, где имя заканчивается на -tr-sa-vm, чтобы увидеть, находятся ли они в пределах разрешенного vmSKUs. Я думал, что ниже будет работать, но он говорит, что соответствует 100% 0 из 0. Может кто-нибудь помочь мне понять, почему он не работает и как заставить его работать?
{
"properties": {
"displayName": "TR - Allowed VM Sizes",
"policyType": "Custom",
"mode": "All",
"metadata": {
"category": "Compute",
"createdBy": "0dcf9e6c-b717-485b-8704-a0695cd10be7",
"createdOn": "2020-04-29T19:38:39.486075Z",
"updatedBy": null,
"updatedOn": null
},
"parameters": {
"listOfAllowedSKUs": {
"type": "Array",
"metadata": {
"displayName": "Allowed SKUs",
"description": "The list of SKUs that can be specified for TR virtual machines.",
"strongType": "vmSKUs"
}
}
},
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
{
"field": "name",
"like": "*-tr-sa-vm"
},
{
"not": {
"field": "Microsoft.Compute/virtualMachines/sku.name",
"in": "[parameters('listOfAllowedSKUs')]"
}
}
]
},
"then": {
"effect": "audit"
}
}
},
"id": "/subscriptions/c8387722-df99-4ac4-9e19-682e684b048d/providers/Microsoft.Authorization/policyDefinitions/44fd80d7-569a-416e-92ee-be2a5b56e9fd",
"type": "Microsoft.Authorization/policyDefinitions",
"name": "44fd80d7-569a-416e-92ee-be2a5b56e9fd"
}
Ожидаемый результат: допустим, У меня есть 200 виртуальных машин, 100 из которых имеют имя, оканчивающееся на -tr-sa-vm. Если в настоящее время есть 30 из этих 100, у которых нет разрешенного sku.name, то я ожидаю, что оно скажет 30 из из 100 не соответствуют.