Повторное использование выражений с помощью переменных шаблона Azure Resource Manager

Завершено

В предыдущем сценарии вы решили использовать выражение, состоящее из нескольких функций шаблона Azure Resource Manager (ARM), чтобы создать уникальное имя для учетной записи хранения Azure. Эта гибкость гарантирует, что все клиенты смогут использовать шаблон ARM для развертывания. Но вы заметите, что добавление этого выражения в нескольких местах является проблемой для поддержания шаблона. Вы решили использовать переменную для выражения имени учетной записи хранения, чтобы можно было определить выражение в одном месте и повторно использовать его во всем шаблоне.

Что такое переменная шаблона Azure Resource Manager?

Переменная шаблона ARM — это конструкция, которая содержит значение для последующего использования. Переменные лучше использовать, когда необходимо указать значение в нескольких местах шаблона. Когда в шаблоне используется переменная, Resource Manager заменяет ее разрешенным значением.

Например, имеется выражение, определяющее значение для расположения ресурса. Для нескольких ресурсов, определенных в шаблоне, требуется расположение. Можно создать переменную для хранения выражения расположения, а затем используйте переменную во всех местах, где требуется расположение.

Преимущества использования переменных шаблонов ARM

Переменные шаблона ARM позволяют написать выражение один раз, а затем использовать его в нескольких местах. Кроме того, выражение хранится в одном месте, что повышает удобство чтения шаблона.

Использование переменных шаблона Azure Resource Manager

Переменные шаблона Azure Resource Manager определяются в разделе variables: {} шаблона. Например, ниже приведено выражение для имени учетной записи хранения, определенного в предыдущем уроке. Теперь оно определяет значение для переменной storageName.

"variables": {
  "storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},

Затем используйте эту переменную в шаблоне везде, где требуется имя учетной записи хранения:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  }
]

Рекомендации по использованию переменных шаблонов Azure Resource Manager

Переменные шаблона задаются в "верблюжьем" стиле. Лучше всего они подходят для значений, которые необходимо указывать более одного раза, особенно если это значение является сложным выражением.

Не используйте функцию reference в разделе variables шаблона. Функция reference разрешается во время выполнения, и переменные разрешаются при синтаксическом анализе шаблона. Кроме того, не используйте в ресурсе переменные для apiVersion. Версия API определяет схему ресурса, и часто невозможно изменить версию без изменения свойств ресурса.