Позволяет ли политика 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"
        }
      ]
Другие вопросы по тегам