Как принудительно применить шаблон именования, например * - * - asp, с помощью политики Azure?

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

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

Спасибо.


person user527614    schedule 05.02.2020    source источник


Ответы (1)


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

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

{
    "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')]"
    }
}
person user527614    schedule 13.02.2020