Поделиться через


Функции Bicep для файлов параметров Bicep

В этой статье описаны функции Bicep, которые можно использовать в файлах параметров Bicep (.bicepparam).

externalInput

externalInput(name, config)

Эта функция позволяет определять входные данные, которые должны предоставляться внешними средствами при запуске развертывания, а не требовать их знать при компиляции.

Доступно в Bicep версии 0.37.4 и более поздних версиях.

Параметры

Параметр Обязательное поле Type Описание
имя Да строка Имя входных данных, предоставленных внешним средством.
config Нет any Необязательная конфигурация входных данных. Конфигурация зависит от внешнего инструмента, из который запрашивается ввод.

Возвращаемое значение

Фактическое значение, полученное из внешнего источника во время развертывания.

Пример

.bicepparam Следующий файл запрашивает входные данные от вымышленного средства с именем, который может предоставить входные данные с именемsomeToolmyInput.

using './main.bicep'

// without configuration
param foo = externalInput('someTool.myInput')

// with string configuration
param bar = externalInput('someTool.myInput', 'Indy')

// with complex configuration
param baz = externalInput('someTool.myInput', {
  name: 'Indy'
  legs: 3
})

getSecret

getSecret(subscriptionId, resourceGroupName, keyVaultName, secretName, secretVersion)

Эта функция возвращает секрет из Azure Key Vault. Используйте эту функцию для передачи секрета в безопасный строковый параметр Bicep-файла.

Примечание.

Вы также можете использовать функцию keyVaultName.getSecret(secretName) из .bicep файла.

using './main.bicep'

param secureUserName = getSecret('exampleSubscription', 'exampleResourceGroup', 'exampleKeyVault', 'exampleSecretUserName')
param securePassword = getSecret('exampleSubscription', 'exampleResourceGroup', 'exampleKeyVault', 'exampleSecretPassword')

При использовании этой функции с интерполяцией строк возникает ошибка.

Квалификатор пространства имен () можно использовать, но это необязательно, так как функция доступна из az.

Параметры

Параметр Обязательное поле Type Описание
subscriptionId Да строка Идентификатор подписки с ресурсом хранилища ключей
resourceGroupName Да строка Имя группы ресурсов с ресурсом хранилища ключей
keyVaultName Да строка Имя хранилища ключей
secretName; Да строка Имя секрета, хранящегося в хранилище ключей
secretVersion Нет строка Версия секрета, хранящегося в хранилище ключей

Возвращаемое значение

Значение секрета.

Пример

.bicepparam Следующий файл имеет securePassword параметр, имеющий последнее значение секрета <secretName>:

using './main.bicep'

param securePassword = getSecret('exampleSubscription', 'exampleResourceGroup', 'exampleKeyVault', 'exampleSecretPassword')

В следующем файле есть параметр, имеющий значение секрета .bicepparam, но он закреплен к определенному securePassword:<>

using './main.bicep'

param securePassword = getSecret('exampleSubscription', 'exampleResourceGroup', 'exampleKeyVault', 'exampleSecretPassword', 'exampleSecretVersion')

readEnvironmentVariable

readEnvironmentVariable(variableName, [defaultValue])

Эта функция возвращает значение переменной среды или задает значение по умолчанию, если переменная среды не существует. Загрузка переменных происходит во время компиляции, а не во время выполнения.

Пространство имен: sys.

Параметры

Параметр Обязательное поле Type Описание
variableName Да строка Имя переменной.
defaultValue Нет строка Строковое значение по умолчанию, используемое, если переменная среды не существует.

Возвращаемое значение

Возвращаемое значение — строковое значение переменной среды или значение по умолчанию.

Замечания

Следующая команда задает переменную среды только для процесса PowerShell, в котором он выполняется. Вы получаете BCP338 из Visual Studio Code:

$env:testEnvironmentVariable = "Hello World!"

Чтобы задать переменную среды на уровне пользователя, выполните следующую команду:

[System.Environment]::SetEnvironmentVariable('testEnvironmentVariable','Hello World!', 'User')

Чтобы задать переменную среды на уровне компьютера, выполните следующую команду:

[System.Environment]::SetEnvironmentVariable('testEnvironmentVariable','Hello World!', 'Machine')

Дополнительные сведения см. в разделе "Метод Environment.SetEnvironmentVariable".

Примеры

В следующих примерах показано, как получить значения переменных среды:

use './main.bicep'

param adminPassword = readEnvironmentVariable('admin_password')
param boolfromEnvironmentVariables = bool(readEnvironmentVariable('boolVariableName','false'))

Следующие шаги

Дополнительные сведения о файлах параметров Bicep см. в статье "Создание файлов параметров для развертывания Bicep".