Parameteriser installationsscripts
I det forrige undermodul har du føjet en brugerdefineret funktionsmåde til en AZURE Resource Manager-skabelon (ARM) for at fasestarte indhold på en lagerkonto for et nyt programmiljø. Dette løste et specifikt problem for ét programteam.
En måde at gøre udrulningsscripts mere tilpassede på er ved at levere data til scriptet. Du har to muligheder: kommandolinjeargumenter og miljøvariabler.
Seddel
Kommandoerne i dette undermodul vises for at illustrere begreber. Kør ikke kommandoerne endnu. Du skal snart øve dig i det, du lærer her.
Brug af kommandolinjeargumenter
Den første mulighed for at overføre data til deploymentScripts
ressourcer er at tilpasse egenskaben arguments
. Egenskaben arguments
tager en streng af argumenter på samme måde som dem, du ville angive på kommandolinjen. Disse argumenter leveres til egenskaben command
for den Azure-objektbeholderforekomst, der kører scriptet.
Seddel
Nogle fortolkninger sker, så test nogle variationer af din arguments
egenskab. Den opdeles i en matrix af strenge på samme måde, som kommandolinjerne i Windows Shell.
"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'
}
Brug af miljøvariabler
Din anden mulighed er at oprette miljøvariabler, som dine scripts kan få adgang til.
"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'
}
En af fordelene ved at bruge miljøvariabler er, at du kan bruge indstillingen secureValue
til hemmeligheder, der muligvis skal overføres til installationsscripts.
"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'
}
Gennemgående parametre
Som du har lært, kan du angive parameterværdier direkte i egenskaberne for installationsscriptet. Der er flere andre indstillinger for værdier, der kan overføres. Du kan bruge dynamiske værdier, der kommer fra tidligere oprettede ressourcer, variabler, der er erklæret i skabelonen, eller parametre, der overføres direkte til skabelonen på udrulningstidspunktet.
Disse scenarier er tilgængelige via skabelonfunktioner i egenskaben arguments
eller environmentVariables
. Du kan bruge en af ARM-skabelonfunktionerne til at få adgang til værdier og overføre dem til skabelonen. Disse funktioner omfatter reference
, parameters
eller variables
.
Disse scenarier er tilgængelige via skabelonfunktioner i egenskaben arguments
eller environmentVariables
. Du kan bruge en af Bicep-funktionerne til at få adgang til værdier og overføre dem til skabelonen, f.eks. henvise til egenskaber fra andre ressourcer ved hjælp af deres symbolske navne og henvise til parametre og variabler.