Dağıtım betiklerini parametreleştirme
Önceki ünitede, yeni bir uygulama ortamı için depolama hesabında başlangıç içeriği hazırlamak için Azure Resource Manager (ARM) şablonuna bazı özel davranışlar eklediniz. Bu, bir uygulama ekibi için belirli bir sorunu çözdü.
Dağıtım betiklerini daha uyarlanabilir hale getirmenin bir yolu betike veri sağlamaktır. komut satırı bağımsız değişkenleri ve ortam değişkenleri olmak üzere iki seçeneğiniz vardır.
Dekont
Bu ünitedeki komutlar kavramları göstermek için gösterilir. Komutları henüz çalıştırmayın. Burada öğrendiklerini yakında öğreneceksin.
Komut satırı bağımsız değişkenlerini kullanma
Kaynaklara deploymentScripts
veri geçirmek için ilk seçenek özelliği özelleştirmektir arguments
. özelliği, arguments
komut satırında sağladığınız bağımsız değişkenler gibi bir dizi bağımsız değişken alır. Bu bağımsız değişkenler, betiği çalıştıracak Azure kapsayıcı örneğinin özelliğine sağlanır command
.
Dekont
Bazı ayrıştırmalar gerçekleşir, bu nedenle özelliğinizin bazı çeşitlemelerini test edin arguments
. Windows kabuğunun komut satırlarını ayrıştırma yöntemiyle aynı şekilde bir dizi dizeye bölünecektir.
"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'
}
Ortam değişkenlerini kullanma
İkinci seçeneğiniz, betiklerinizin erişebileceği ortam değişkenleri oluşturmaktır.
"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'
}
Ortam değişkenlerini kullanmanın avantajlarından biri, dağıtım betiklerine geçirilmesi gerekebilecek gizli diziler için seçeneğini kullanabilmenizdir.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'
}
Parametreler arasında geçiş
Öğrendiğiniz gibi, parametre değerlerini doğrudan dağıtım betiğinin özelliklerinde ayarlayabilirsiniz. Geçirilebilen değerler için birkaç seçenek daha vardır. Daha önce oluşturulan kaynaklardan gelen dinamik değerleri, şablonda bildirilen değişkenleri veya dağıtım zamanında doğrudan şablona geçirilen parametreleri kullanabilirsiniz.
Bu senaryolar, veya environmentVariables
özelliğindeki arguments
şablon işlevleri aracılığıyla kullanılabilir. Değerlere erişmek ve bunları şablona geçirmek için ARM şablonu işlevlerinden herhangi birini kullanabilirsiniz. Bu işlevler , parameters
veya variables
işlevlerini içerirreference
.
Bu senaryolar, veya environmentVariables
özelliğindeki arguments
şablon işlevleri aracılığıyla kullanılabilir. Değerlere erişmek ve bunları şablona geçirmek için herhangi bir Bicep özelliğini kullanabilirsiniz. Örneğin, sembolik adlarını kullanarak diğer kaynakların özelliklerine ve parametrelere ve değişkenlere başvurabilirsiniz.