Üzembehelyezési szkriptek paraméterezése
Az előző leckében egyéni viselkedést adott hozzá egy Azure Resource Manager-sablonhoz, hogy egy tárfiók kezdő tartalmát egy új alkalmazáskörnyezethez szakaszozza. Ez egy adott problémát oldott meg egy alkalmazáscsapat számára.
Az üzembehelyezési szkriptek adaptálhatóbbá tétele egyik módja, ha adatokat ad meg a szkriptnek. Két lehetősége van, parancssori argumentumai és környezeti változói.
Megjegyzés:
Az egység parancsai a fogalmakat szemléltetik. Még ne futtassa a parancsokat. Hamarosan gyakorolja, amit itt tanul.
Parancssori argumentumok használata
Az adatok erőforrásokba való továbbításának első lehetősége a deploymentScripts
tulajdonság testreszabása arguments
. A arguments
tulajdonság argumentumok sorozatát veszi fel, ugyanúgy, mint a parancssorban megadottakat. Ezeket az argumentumokat a command
szkriptet futtató Azure-tárolópéldány tulajdonsága adja meg.
Megjegyzés:
Némi elemzés történik, ezért tesztelje a arguments
tulajdonság néhány változatát. Ugyanúgy lesz sztringtömbre bontva, mint a Windows rendszerhéj a parancssorok elemzéséhez.
"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'
}
Környezeti változók használata
A második lehetőség olyan környezeti változók létrehozása, amelyekhez a szkriptek hozzáférhetnek.
"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'
}
A környezeti változók használatának egyik előnye, hogy olyan titkos kulcsokat is használhatsecureValue
, amelyeket esetleg át kell adni az üzembehelyezési szkriptekbe.
"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'
}
Paraméterek átadása
Mint megtanulta, a paraméterértékeket közvetlenül az üzembehelyezési szkript tulajdonságaiban állíthatja be. Több más lehetőség is van az átadható értékekre. Használhatja a korábban létrehozott erőforrásokból, a sablonban deklarált változókból vagy a sablonba közvetlenül az üzembe helyezéskor átadott paraméterekből származó dinamikus értékeket.
Ezek a forgatókönyvek a sablonfüggvényeken keresztül érhetők el a arguments
tulajdonságban.environmentVariables
Az ARM-sablonfüggvények bármelyikével elérheti az értékeket, és átadhatja őket a sablonnak. Ezek a függvények a következők: reference
, parameters
vagy variables
.
Ezek a forgatókönyvek a sablonfüggvényeken keresztül érhetők el a arguments
tulajdonságban.environmentVariables
Bármelyik Bicep-funkcióval elérheti az értékeket, és átadhatja őket a sablonnak, például hivatkozhat más erőforrások tulajdonságaira szimbolikus neveik használatával, és hivatkozhat paraméterekre és változókra.