Я изо всех сил пытаюсь создать параметризованную версию примера политики Azure, которая копирует теги, примененные к группе ресурсов, в любые ресурсы внутри нее. Вот пример, который я использую как вдохновение: https://github.com/Azure/azure-policy/tree/master/samples/ResourceGroup/copy-resourcegroup-tag,, что:
{
"if": {
"field": "tags.example",
"exists": "false"
},
"then": {
"effect": "append",
"details": [
{
"field": "tags.example",
"value": "[resourceGroup().tags.example]"
}
]
}
}
У нас есть несколько тегов, добавленных в группы ресурсов, и для целей выставления счетов мне необходимо убедиться, что они применяются ко всем ресурсам внутри. Я ищу, чтобы создать Инициативу, которая содержит одну и ту же политику несколько раз, каждый раз используя другое параметризованное имя тега. Моя параметризованная версия примера политики выглядит следующим образом:
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag name",
"description": "The tag to copy to child resources"
}
}
},
"policyRule": {
"if": {
"field": "[concat('tags.', parameters('tagName'))]",
"exists": "false"
},
"then": {
"effect": "append",
"details": [
{
"field": "[concat('tags.', parameters('tagName'))]",
"value": "[concat('resourceGroup().tags.', parameters('tagName'))]"
}
]
}
}
Когда политика применяется, я получаю результат несоответствия. Просмотр сведений о соответствии показывает:
Причина несоблюдения
Текущее значение должно существовать.
поле
tags.ApplicationName
Текущее значение
-
Существует тег с именем ApplicationName со значением в группе ресурсов. Документация говорит, что причина "Текущее значение должно существовать" - это условие существующие . Кажется, это противоречит тому, как я ожидаю, что это сработает - я знаю, что его не существует, поэтому я хочу установить значение.
Есть ли способ отладить их, кроме назначения политики и ожидания результата в течение нескольких часов?
Спасибо за вашу помощь!