Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В предыдущем руководстве вы узнали, как добавить учетную запись хранения Azure в шаблон и развернуть ее. В этом руководстве описано, как улучшить шаблон Azure Resource Manager (шаблон ARM), добавив параметры. Эта инструкция занимает 14 минут .
Предпосылки
Мы рекомендуем пройти руководство по ресурсам, но это не обязательно.
Вам необходимо иметь Visual Studio Code, а также Azure PowerShell или Azure CLI. Дополнительные сведения см. в разделе "Инструменты шаблона".
Проверка шаблона
В конце предыдущего руководства шаблон содержит следующий JSON-файл:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "{provide-unique-name}",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Вы можете заметить, что с этим шаблоном возникла проблема. Имя учетной записи хранения жестко закодировано. Этот шаблон можно использовать только для развертывания одной учетной записи хранения каждый раз. Чтобы развернуть учетную запись хранения с другим именем, необходимо создать новый шаблон, который, очевидно, не является практическим способом автоматизации развертываний.
Сделать шаблон многоразовым
Чтобы сделать шаблон повторно используемым, давайте добавим параметр, который можно использовать для передачи имени учетной записи хранения. Json-файл в следующем примере показывает изменения в шаблоне. Параметр storageName определяется как строка. Имя учетной записи хранения состоит только из строчных букв или цифр и имеет ограничение в 24 символа.
Скопируйте весь файл и замените шаблон его содержимым:
{
"$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
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageName')]",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Развертывание шаблона
Давайте развернем шаблон. В следующем примере шаблон развертывается с помощью Azure CLI или Azure PowerShell. Обратите внимание, что укажите имя учетной записи хранения в качестве одного из значений в команде развертывания. В качестве имени учетной записи хранения укажите то же имя, которое использовалось в предыдущем руководстве.
Если вы еще не создали группу ресурсов, см. статью "Создать группу ресурсов". Пример предполагает, что вы установили переменную templateFile как путь к файлу шаблона, как показано в первом руководстве.
New-AzResourceGroupDeployment `
-Name addnameparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}"
Общие сведения об обновлениях ресурсов
После развертывания учетной записи хранения с тем же именем, который вы использовали ранее, вы можете задаться вопросом о том, как повторное развертывание влияет на ресурс.
Если ресурс уже существует, и нет изменений в свойствах, нет необходимости в дальнейших действиях. Если ресурс существует и свойство изменяется, он обновляется. Если ресурс не существует, он создается.
Такой способ обработки обновлений означает, что шаблон может включать все ресурсы, необходимые для решения Azure. Вы можете безопасно развернуть шаблон и знать, что ресурсы изменяются или создаются только при необходимости. Например, при добавлении файлов в учетную запись хранения можно повторно развернуть учетную запись хранения без потери файлов.
Настройка по среде
Параметры позволяют настраивать развертывание, предоставляя значения, адаптированные для конкретной среды. Можно передать различные значения, например, в зависимости от того, развертываете ли вы в среде разработки, тестирования или производственной среды.
Предыдущий шаблон всегда развертывает стандартный локально-избыточный аккаунт системы хранения данных (LRS) Standard_LRS. Вам может потребоваться гибкость развертывания различных единиц хранения запасов (SKU) в зависимости от среды. В следующем примере показаны изменения для добавления параметра для SKU. Скопируйте весь файл и вставьте его в шаблон:
{
"$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": "2025-06-01",
"name": "[parameters('storageName')]",
"location": "eastus",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Параметр storageSKU имеет значение по умолчанию. Используйте это значение, если развертывание не указывает его. Он также содержит список разрешенных значений. Эти значения соответствуют значениям, необходимым для создания учетной записи хранения. Вы хотите, чтобы пользователи шаблона передавали действующие номера SKU.
Шаблон повторного развертывания
Вы снова готовы к развертыванию. Так как номер SKU по умолчанию имеет значение Standard_LRS, вы уже предоставили значение параметра.
New-AzResourceGroupDeployment `
-Name addskuparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}"
Замечание
Если развертывание завершается сбоем, используйте переключатель verbose, чтобы получить информацию о создаваемых ресурсах. Используйте параметр debug, чтобы получить дополнительные сведения об отладке.
Чтобы увидеть гибкость шаблона, давайте снова развернем его. На этот раз задайте для параметра SKU стандартное геоизбыточное хранилище (GRS) Standard_GRS. Вы можете передать новое имя, чтобы создать другую учетную запись хранения или использовать то же имя для обновления существующей учетной записи хранения. Оба варианта работают.
New-AzResourceGroupDeployment `
-Name usenondefaultsku `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}" `
-storageSKU Standard_GRS
Наконец, давайте запустите еще один тест и посмотрим, что происходит при передаче номера SKU, который не является одним из разрешенных значений. В этом случае мы проверяем сценарий, в котором пользователь шаблона считает, что базовый является одним из SKU.
New-AzResourceGroupDeployment `
-Name testskuparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}" `
-storageSKU basic
Команда сразу же завершается с сообщением об ошибке, которое перечисляет допустимые значения. Обработчик ARM находит ошибку перед началом развертывания.
Очистите ресурсы
Если вы переходите к следующему руководству, вам не нужно удалять группу ресурсов.
Если вы решили остановиться сейчас, вам, возможно, нужно очистить развернутые ресурсы, удалив соответствующую группу ресурсов.
- На портале Azure выберите группу ресурсов в меню слева.
- Введите имя группы ресурсов в текстовое поле Фильтр любого поля....
- Установите флажок рядом с myResourceGroup и выберите myResourceGroup или имя группы ресурсов.
- Выберите "Удалить группу ресурсов " в верхнем меню.
Дальнейшие шаги
Вы улучшили шаблон, созданный в первом руководстве , добавив параметры. В следующем руководстве вы узнаете о функциях шаблонов.