Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вместо передачи параметров в виде встроенных значений в скрипте можно использовать JSON-файл, содержащий значения параметров. В этой статье показано, как создать файл параметров, используемый с шаблоном JSON.
Подсказка
Мы рекомендуем использовать Bicep, так как он предоставляет те же возможности, что и шаблоны ARM, и имеет более простой синтаксис. Дополнительные сведения см. в файлах параметров.
Файл параметров
Файл параметров использует следующий формат:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"<first-parameter-name>": {
"value": "<first-value>"
},
"<second-parameter-name>": {
"value": "<second-value>"
}
}
}
Следует отметить, что файл параметров сохраняет значения параметров в виде обычного текста. По соображениям безопасности этот подход не рекомендуется использовать для конфиденциальных значений, таких как пароли. Если необходимо передать параметр с конфиденциальным значением, сохраните значение в хранилище ключей. Затем в файле параметров добавьте ссылку на хранилище ключей. Во время развертывания конфиденциальное значение безопасно извлекается. Дополнительные сведения см. в статье "Использование Azure Key Vault для передачи значения безопасного параметра во время развертывания".
Следующий файл параметров содержит значение обычного текста и конфиденциальное значение, хранящееся в хранилище ключей.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"<first-parameter-name>": {
"value": "<first-value>"
},
"<second-parameter-name>": {
"reference": {
"keyVault": {
"id": "<resource-id-key-vault>"
},
"secretName": "<secret-name>"
}
}
}
}
Дополнительные сведения об использовании значений из хранилища ключей см. в статье "Использование Azure Key Vault" для передачи безопасного значения параметров во время развертывания.
Определение значений параметров
Чтобы определить имена и значения параметров, откройте шаблон JSON и просмотрите parameters
раздел. В следующем примере показаны параметры шаблона JSON.
"parameters": {
"storagePrefix": {
"type": "string",
"maxLength": 11
},
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
]
}
}
В файле параметров в первую очередь следует заметить имя каждого параметра. Имена параметров в файле параметров должны совпадать с именами параметров в шаблоне.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
},
"storageAccountType": {
}
}
}
Обратите внимание на тип параметра. Типы параметров в файле параметров должны использовать те же типы, что и шаблон. В этом примере оба типа параметров являются строками.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": ""
},
"storageAccountType": {
"value": ""
}
}
}
Проверьте шаблон на параметры со значением по умолчанию. Если параметр имеет значение по умолчанию, можно указать значение в файле параметров, но это не обязательно. Значение файла параметров переопределяет значение по умолчанию шаблона.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "" // This value must be provided.
},
"storageAccountType": {
"value": "" // This value is optional. Template will use default value if not provided.
}
}
}
Проверьте допустимые значения шаблона и любые ограничения, такие как максимальная длина. Эти значения задают диапазон значений, которые можно указать для параметра. В этом примере storagePrefix
может содержать не более 11 символов и storageAccountType
указывать допустимое значение.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "storage"
},
"storageAccountType": {
"value": "Standard_ZRS"
}
}
}
Замечание
Файл параметров может содержать только значения для параметров, определенных в шаблоне. Если файл параметров содержит дополнительные параметры, которые не соответствуют параметрам шаблона, вы получите сообщение об ошибке.
Форматы типов параметров
В следующем примере показаны форматы различных типов параметров: строка, целое число, логическое значение, массив и объект.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"exampleString": {
"value": "test string"
},
"exampleInt": {
"value": 4
},
"exampleBool": {
"value": true
},
"exampleArray": {
"value": [
"value 1",
"value 2"
]
},
"exampleObject": {
"value": {
"property1": "value1",
"property2": "value2"
}
}
}
}
Развертывание шаблона с помощью файла параметров
Из Azure CLI вы передаете локальный файл параметров с помощью @
и имя файла параметров. Например: @storage.parameters.json
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters @storage.parameters.json
Дополнительные сведения см. в статье Развертывание ресурсов с помощью шаблонов ARM и Azure CLI.
Из Azure PowerShell вы передаете локальный файл параметров с помощью TemplateParameterFile
параметра.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.json `
-TemplateParameterFile C:\MyTemplates\storage.parameters.json
Дополнительные сведения см. в статье "Развертывание ресурсов с помощью шаблонов ARM" и Azure PowerShell.
Замечание
Невозможно использовать файл параметров с колонкой пользовательского шаблона на портале.
Подсказка
Если вы используете проект группы ресурсов Azure в Visual Studio, убедитесь, что файл параметров имеет значение "Действие сборки " для содержимого.
Имя файла
Общее соглашение об именовании файла параметров заключается в включении параметров в имя шаблона. Например, если шаблон называется azuredeploy.json, файл параметров называется azuredeploy.parameters.json. Это соглашение об именовании помогает увидеть соединение между шаблоном и параметрами.
Чтобы развернуть в разных средах, создайте несколько файлов параметров. При назывании файлов параметров укажите их назначение, например, разработка и продакшн. Например, используйте azuredeploy.parameters-dev.json и azuredeploy.parameters-prod.json для развертывания ресурсов.
Приоритет параметров
Встроенные параметры и локальный файл параметров можно использовать в той же операции развертывания. Например, можно указать некоторые значения в локальном файле параметров и добавить другие значения во время развертывания. Если вы предоставляете значения для параметра как в локальном файле параметров, так и в встроенном файле, то встроенное значение имеет приоритет.
Можно использовать внешний файл параметров, предоставив URI файлу. При использовании внешнего файла параметров нельзя передавать другие значения либо встроенные, либо из локального файла. Все встроенные параметры игнорируются. Укажите все значения параметров во внешнем файле.
Конфликты в названиях параметров
Если шаблон содержит параметр с тем же именем, что и один из параметров в команде PowerShell, PowerShell представляет параметр из шаблона с постфиксом FromTemplate
. Например, параметр с именем ResourceGroupName
в шаблоне конфликтует с ResourceGroupName
параметром в командлете New-AzResourceGroupDeployment . Вам будет предложено указать значение для ResourceGroupNameFromTemplate
. Этой путаницы можно избежать, используя имена параметров, которые не используются для команд развертывания.
Дальнейшие шаги
- Дополнительные сведения об определении параметров в шаблоне см. в разделе "Параметры" в шаблонах ARM.
- Дополнительные сведения об использовании значений из хранилища ключей см. в статье "Использование Azure Key Vault" для передачи безопасного значения параметров во время развертывания.