Как применить шаблон именования, например "* - * - asp", с помощью политики Azure? - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь применить Azure шаблон именования ресурсов для сред prod / dev / uat, рекомендуемый шаблон - [service name]-[environment]-[resource short name]. Есть ли способ применить это с помощью политики Azure? Похоже, что политика Azure (функции Like / Match) не поддерживает регулярные выражения. Пожалуйста, предложите обходное решение.

Примечание: [service name], [environment], [resource short name] имеют переменную длину.

Спасибо.

1 Ответ

0 голосов
/ 13 февраля 2020

Ниже блок кода должен соответствовать требованию шаблона *-*-asp. я не провёл это через достаточное тестирование, но для тех, кто ищет применение правил именования с помощью политик, я надеюсь, что это поможет. Кроме того, было бы интересно узнать, есть ли лучшее решение, чем приведенное здесь.

Azure Политика Like / Match не поддерживает регулярные выражения, сложность приведенного ниже решения только подчеркивает необходимость в такой системе. Есть голос пользователя, я прошу вашего голоса, если вы видите актуальность функции регулярных выражений в Azure policy - ссылка здесь .

{
    "if": {
        "allOf": [
            {
                "field": "type",
                "in": "[parameters('listOfResourceTypes')]"
            },
            {
                "not": {
                    "allOf": [
                        {
                            "value": "[equals(length(split(parameters('namePattern'), '-')), length(split(field('name'), '-')))]",
                            "equals": true
                        },
                        {
                            "value": "[equals(toLower(last(split(parameters('namePattern'), '-'))), toLower(last(split(field('name'), '-'))))]",
                            "equals": true
                        }
                    ]
                }
            }
        ]
    },
    "then": {
        "effect": "[parameters('policyEffect')]"
    }
}
...