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 çözüm, 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.
Not
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ıran Azure kapsayıcı örneği içindeki command özelliğine sağlanır.
Not
Bazı ayrıştırmalar gerçekleşir, bu nedenle özelliğinizin bazı çeşitlemelerini test edin arguments . Özellik değeri, Windows kabuğunun komut satırlarını ayrıştırma yöntemiyle aynı şekilde bir dize dizisine ayrılır.
"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ğinisecureValue
"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 arguments özelliğindeki environmentVariables ş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 , referenceveya parametersişlevlerini içerirvariables.
Bu senaryolar, veya arguments özelliğindeki environmentVariables ş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 kaynaklardan özelliklere, ayrıca parametre ve değişkenlere başvurabilirsiniz.