Создание файла параметров для развертывания Bicep
В этой статье показано, как создать файл параметров, который можно использовать вместо передачи параметров в качестве встроенных значений в скрипте. Файл параметров Bicep можно использовать с .bicepparam
расширением файла или файлом параметров JSON, содержащим значение параметра.
Примечание.
Файлы параметров Bicep поддерживаются только в Bicep CLI версии 0.18.4 или более поздней версии, Azure CLI версии 2.47.0 или более поздней версии, а также в Azure PowerShell версии 9.7.1 или более поздней версии.
С одним файлом Bicep может быть связано несколько файлов параметров Bicep. Однако каждый файл параметров Bicep предназначен для одного конкретного файла Bicep. Эту связь можно установить, применяя инструкцию using
в файле параметров Bicep.
Файлы параметров Bicep можно скомпилировать в файлы параметров JSON, которые можно развернуть с помощью Bicep-файла. Дополнительные сведения см. в разделе build-params
. Вы также можете декомпилировать файл параметров JSON в файл параметров Bicep. Дополнительные сведения см. в разделе decompile-params
.
Файл параметров
Файл параметров использует следующий формат:
using '<path>/<file-name>.bicep'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
Инструкцию using
можно применить с помощью файла Bicep, шаблонов JSON Azure Resource Manager, модулей Bicep и спецификаций шаблонов. Например:
using './main.bicep'
...
using './azuredeploy.json'
...
using 'br/public:avm/res/storage/storage-account:0.9.0'
...
using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
...
using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
...
Дополнительные сведения см. в инструкции Using.
Выражения можно использовать со значением по умолчанию. Например:
using 'main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
Вы можете ссылаться на переменные среды в качестве значений параметров. Например:
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
Можно определить и использовать переменные. Для использования переменных в .bicepparam
файлах необходимо использовать интерфейс командной строки Bicep версии 0.21.X или более поздней версии. См. следующие примеры.
using './main.bicep'
var storagePrefix = 'myStorage'
param primaryStorageName = '${storagePrefix}Primary'
param secondaryStorageName = '${storagePrefix}Secondary'
using './main.bicep'
var testSettings = {
instanceSize: 'Small'
instanceCount: 1
}
var prodSettings = {
instanceSize: 'Large'
instanceCount: 4
}
param environmentSettings = {
test: testSettings
prod: prodSettings
}
Примечание.
Файл параметров сохраняет значения параметров в виде обычного текста. По соображениям безопасности мы не рекомендуем использовать этот подход с конфиденциальными значениями, такими как пароли.
Если необходимо передать параметр с конфиденциальным значением, следует сохранить это значение в хранилище ключей. Вместо добавления конфиденциального значения в файл параметров используйте getSecret
функцию для его извлечения. Дополнительные сведения см. в статье "Использование Azure Key Vault для передачи секрета в качестве параметра во время развертывания Bicep".
Форматы типов параметров
В следующем примере показаны форматы различных типов параметров: string, integer, Boolean, array и object.
using './main.bicep'
param exampleString = 'test string'
param exampleInt = 2 + 2
param exampleBool = true
param exampleArray = [
'value 1'
'value 2'
]
param exampleObject = {
property1: 'value 1'
property2: 'value 2'
}
Используйте синтаксис Bicep для объявления объектов и массивов.
Имя файла
Расширение файла параметров Bicep равно .bicepparam
.
Чтобы развернуть в нескольких средах, создайте несколько файлов параметров. При использовании нескольких файлов параметров пометьте их в соответствии с их использованием. Например, чтобы развернуть ресурсы, используйте метку main.dev.bicepparam для разработки и метки main.prod.bicepparam для рабочей среды.
Определение значений параметров
Чтобы определить имена и значения параметров, откройте файл Bicep. Просмотрите раздел параметров файла Bicep. В следующих примерах показаны параметры из файла Bicep с именем main.bicep
:
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
В файле параметров найдите имя каждого параметра. Имена параметров в файле параметров должны совпадать с именами параметров в файле Bicep.
using 'main.bicep'
param storagePrefix
param storageAccountType
Инструкция using
связывает файл параметров Bicep с файлом Bicep. Дополнительные сведения см. в инструкции Using.
При вводе ключевого слова param
в Visual Studio Code он запрашивает доступные параметры и их описания из связанного файла Bicep.
При наведении указателя мыши на param
имя можно увидеть тип и описание параметров.
Просмотрите тип параметра, так как типы параметров в файле параметров должны использовать те же типы, что и файл Bicep. В этом примере оба типа параметров являются строками:
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
Проверьте файл Bicep для параметров, включающих значение по умолчанию. Если параметр имеет значение по умолчанию, можно указать значение в файле параметров, но это не обязательно. Значение файла параметров переопределяет значение по умолчанию файла Bicep.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep uses default value if not provided.
Чтобы узнать, существуют ли ограничения, такие как максимальная длина, проверьте допустимые значения файла Bicep. Допустимые значения указывают диапазон значений, которые можно указать для параметра. В этом примере storagePrefix
может содержать не более 11 символов и storageAccountType
указывать допустимое значение.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
Создание файла параметров
Файл параметров можно создать с помощью Visual Studio Code или интерфейса командной строки Bicep. Оба средства позволяют использовать Bicep-файл для создания файла параметров. См . файл параметров создания для метода Visual Studio Code и файла параметров для метода Bicep CLI.
Создание файла параметров Bicep
Из интерфейса командной строки Bicep можно создать файл параметров Bicep в файл параметров JSON. Дополнительные сведения см. в файле параметров сборки.
Развертывание Bicep-файла с помощью файла параметров
Azure CLI
В Azure CLI можно передать файл параметров с развертыванием Bicep-файла.
Файл Bicep можно развернуть с помощью файла параметров Bicep с помощью Azure CLI версии 2.53.0 или более поздней версии и Bicep CLI версии 0.22.X или более поздней.
using
При использовании инструкции в файле параметров Bicep не требуется предоставлять --template-file
параметр при указании файла параметров Bicep для коммутатора--parameters
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
Встроенные параметры и файл параметров расположения можно использовать в той же операции развертывания. Например:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
Дополнительные сведения см. в статье "Развертывание Bicep-файлов с помощью Azure CLI".
Azure PowerShell
В Azure PowerShell передайте локальный файл параметров с помощью TemplateParameterFile
параметра.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
Встроенные параметры и файл параметров расположения можно использовать в той же операции развертывания. Например:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
Дополнительные сведения см. в статье "Развертывание файлов Bicep с помощью Azure PowerShell". Для развертывания .bicep
файлов требуется Azure PowerShell версии 5.6.0 или более поздней.
Приоритет параметров
Встроенные параметры и локальный файл параметров можно использовать в той же операции развертывания. Например, можно указать некоторые значения в файле локальных параметров и добавить другие значения во время развертывания. Если вы предоставляете значения для параметра как в файле локальных параметров, так и во встроенном файле, то встроенное значение имеет приоритет.
Хотя внешние файлы параметров Bicep в настоящее время не поддерживаются, можно использовать внешний файл параметров JSON, предоставив URI файлу. При использовании файла внешних параметров укажите все значения параметров во внешнем файле. При использовании внешнего файла нельзя передавать другие значения в виде встроенного или локального файла, а все встроенные параметры игнорируются.
Конфликты параметров
Если файл Bicep содержит параметр с тем же именем, что и один из параметров в команде Azure PowerShell, Azure PowerShell представляет параметр из файла Bicep с FromTemplate
постфиксом. Например, если параметр с именем ResourceGroupName
в файле Bicep конфликтует с ResourceGroupName
параметром в командлетеNew-AzResourceGroupDeployment
, вам будет предложено указать значение.ResourceGroupNameFromTemplate
Этой путаницы можно избежать, используя имена параметров, которые не используются для команд развертывания.
Связанный контент
- Дополнительные сведения об определении параметров в файле Bicep см. статье Параметры в Bicep.
- Сведения о том, как получить конфиденциальные значения, см. в статье Использование Azure Key Vault для передачи защищенного значения параметра во время развертывания.