Параметризация сценариев развертывания
В предыдущем модуле вы научились добавлять пользовательское поведение в шаблон Azure Resource Manager (ARM) для промежуточного хранения содержимого в учетной записи хранения для новой среды приложения. Это решает конкретную проблему для одной группы разработчиков приложений.
Один из способов сделать повысить адаптивность сценариев развертывания является добавление в сценарий данных. Есть два варианта: аргументы командной строки и переменные среды.
Примечание.
Команды в этом уроке демонстрируют основные понятия. На этом этапе не выполняйте команды. Вскоре вы поупражняетесь с полученными знаниями.
Использование аргументов командной строки
Первый вариант передачи данных в deploymentScripts
ресурсы — это настройка свойства arguments
. Свойство arguments
принимает строку аргументов точно так же, как аргументы, которые добавляются в командную строку. Эти аргументы добавляются в свойство command
экземпляра контейнера Azure, в котором будет выполняться сценарий.
Примечание.
Выполняется анализ, поэтому необходимо протестировать ряд вариаций свойства arguments
. Оно будет разделяться на массив строк точно так же, как оболочка Windows анализирует командные строки.
"properties": {
"arguments": "-Name Learner",
"azPowerShellVersion": "3.0",
"scriptContent": "
param ([string]$Name)
$output = \"Hello $Name!\"
Write-Output $output
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
",
"retentionInterval":"P1D"
}
properties: {
arguments: '-Name Learner'
azPowerShellVersion: '3.0'
scriptContent: '''
param ([string]$Name)
$output = "Hello $Name!"
Write-Output $output
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
'''
retentionInterval: 'P1D'
}
Использование переменных среды
Второй вариант — создать переменные среды, к которым могут обращаться сценарии.
"properties": {
"arguments": "-Name Learner",
"environmentVariables:": [
{
"name": "Subject",
"value": "Deployment Scripts"
}
],
"azPowerShellVersion": "3.0",
"scriptContent": "
param ([string]$Name)
$output = \"Hello $Name!\"
$output += \"Learning about $env:Subject can be very helpful in your deployments.\"
Write-Output $output
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
",
"retentionInterval":"P1D"
}
properties: {
arguments: '-Name Learner'
environmentVariables: [
{
name: 'Subject'
value: 'Deployment Scripts'
}
]
azPowerShellVersion: '3.0'
scriptContent: '''
param ([string]$Name)
$output = "Hello $Name!"
$output += "Learning about $env:Subject can be very helpful in your deployments."
Write-Output $output
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
'''
retentionInterval: 'P1D'
}
Одним из преимуществ использования переменных среды является возможность использования secureValue
секретов, которые могут быть переданы в скрипты развертывания.
"properties": {
"arguments": "-Name Learner",
"environmentVariables:": [
{
"name": "Subject",
"value": "Deployment Scripts"
},
{
"name": "MySecretValue",
"secureValue": "PleaseDoNotPrintMeToTheConsole!"
}
],
"azPowerShellVersion": "3.0",
"scriptContent": "
param ([string]$Name)
$output = \"Hello $Name!\"
$output += \"Learning about $env:Subject can be very helpful in your deployments.\"
$output += \"Secure environment variables (like $env:MySecretValue) are only secure if you keep them that way.\"
Write-Output $output
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
",
"retentionInterval":"P1D"
}
properties: {
arguments: '-Name Learner'
environmentVariables: [
{
name: 'Subject'
value: 'Deployment Scripts'
}
{
name: 'MySecretValue'
secureValue: 'PleaseDoNotPrintMeToTheConsole!'
}
]
azPowerShellVersion: '3.0'
scriptContent: '''
param ([string]$Name)
$output = "Hello $Name!"
$output += "Learning about $env:Subject can be very helpful in your deployments."
$output += "Secure environment variables (like $env:MySecretValue) are only secure if you keep them that way."
Write-Output $output
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
'''
retentionInterval: 'P1D'
}
Передача параметров
Как вы узнали, можно задать значения параметров непосредственно в свойствах скрипта развертывания. Существует ряд других параметров для значений, которые можно передавать. Можно использовать динамические значения, поступающие из ранее созданных ресурсов, переменных, объявленных в шаблоне, или параметров, передаваемых непосредственно в шаблон во время развертывания.
Эти сценарии доступны посредством функций шаблонов в свойстве arguments
или environmentVariables
. Можно использовать любую из функций шаблона ARM для доступа к значениям и передачи их в шаблон. Эти функции включают reference
, parameters
и variables
.
Эти сценарии доступны посредством функций шаблонов в свойстве arguments
или environmentVariables
. Можно использовать любую из функций Bicep для доступа к значениям и передачи их в шаблон, например, можно ссылаться на свойства из других ресурсов, используя их символьные имена, и ссылаться на параметры и переменные.