Руководство по добавлению функций шаблона в шаблон ARM
Из этого учебника вы узнаете, как добавить функции шаблона в шаблон Azure Resource Manager (ARM). Функции используются для динамического создания значений. Помимо этих системных функций шаблонов можно также создать функции, определяемые пользователем. Для выполнения инструкций из этого учебника требуется 7 минут.
Предварительные требования
Советуем выполнить инструкции из руководства о параметрах, но это необязательно.
Вам потребуется установить Visual Studio Code с расширением инструментов Resource Manager,а также либо Azure PowerShell, либо Azure CLI. Дополнительные сведения см. в разделе об инструментах шаблона.
Проверка шаблона
В конце предыдущего учебника шаблон содержал следующий файл JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[parameters('storageName')]",
"location": "eastus",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Предположим, что вы жестко закодировали расположение учетной записи хранения Azure в eastus, но его необходимо развернуть в другом регионе. Необходимо добавить параметр, чтобы сделать шаблон более гибким и разрешить ему использовать другое расположение.
Использование функции
Если вы выполняли упражнения в учебнике по параметрам, то вы использовали какую-то функцию. При добавлении "[parameters('storageName')]"
использовалась функция parameters. Квадратные скобки указывают на то, что синтаксис внутри них — это выражение шаблона. Azure Resource Manager разрешает синтаксис и не рассматривает его как литеральное значение.
Функции позволяют адаптировать шаблон за счет динамического получения значения во время развертывания. В рамках этого учебника вы используете функцию для получения расположения развернутой группы ресурсов.
В следующем примере показаны изменения для добавления параметра location
. Значение параметра по умолчанию вызывает функцию resourceGroup. Эта функция возвращает объект со сведениями о развернутой группе ресурсов. Одним из свойств объекта является свойство расположения. При использовании значения по умолчанию расположение учетной записи хранения совпадает с расположением группы ресурсов. Ресурсы внутри группы имеют разные расположения.
Скопируйте весь файл и замените шаблон на его содержимое.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[parameters('storageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Развертывание шаблона
В предыдущих учебниках вы создали учетную запись хранения в восточной части США, но ваша группа ресурсов была создана в центральной части США. В этом учебнике учетная запись хранения создается в том же регионе, что и группа ресурсов. Используйте значение по умолчанию для расположения, чтобы не указывать значение этого параметра. Необходимо указать новое имя для учетной записи хранения, так как вы создаете ее в другом расположении. Например, используйте store2 в качестве префикса вместо store1.
Если вы еще не создали группу ресурсов, см. этот раздел. В этом примере предполагается, что для переменной templateFile
указан путь к файлу шаблона, как показано в первом учебнике.
New-AzResourceGroupDeployment `
-Name addlocationparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{new-unique-name}"
Примечание
Если развертывание завершается сбоем, используйте параметр verbose
, чтобы получить сведения о создаваемых ресурсах. Используйте параметр debug
, чтобы получить дополнительные сведения для отладки.
Проверка развертывания
Чтобы проверить развертывание, просмотрите группу ресурсов на портале Azure.
- Войдите на портал Azure.
- В меню слева выберите Группы ресурсов.
- Установите флажок слева от myResourceGroup и выберите myResourceGroup.
- Выберите созданную ранее группу ресурсов. Имя по умолчанию — myResourceGroup.
- Обратите внимание, что развернутая учетная запись хранения и группа ресурсов имеют одинаковое расположение.
Очистка ресурсов
Если вы переходите к следующему учебнику, вам не нужно удалять группу ресурсов.
Если вы прекращаете работу, то можете удалить группу ресурсов.
- На портале Azure в меню слева выберите Группы ресурсов.
- Введите имя группы ресурсов в текстовое поле Фильтрация всех полей....
- Установите флажок рядом с myResourceGroup и выберите myResourceGroup или имя вашей группы ресурсов.
- В главном меню выберите Удалить группу ресурсов.
Дальнейшие действия
В этом учебнике при определении значения по умолчанию для параметра вы использовали функцию. В этой серии учебников вы по-прежнему будете использовать функции. К концу серии вы добавите функции в каждый раздел шаблона.