Buat parameter pada skrip penyebaran
Di unit sebelumnya, Anda menambahkan beberapa perilaku kustom ke templat Azure Resource Manager (ARM) untuk menyiapkan konten awal di akun penyimpanan untuk lingkungan aplikasi baru. Ini memecahkan sebuah masalah khusus untuk satu tim aplikasi.
Sebuah cara untuk membuat skrip penyebaran lebih mudah beradaptasi adalah dengan memberikan data ke skrip. Anda memiliki dua opsi, argumen baris perintah, dan variabel lingkungan.
Catatan
Perintah dalam unit ini ditampilkan untuk mengilustrasikan konsep. Jangan jalankan perintah terlebih dahulu. Anda akan segera mempraktikkan apa yang Anda pelajari di sini.
Menggunakan argumen baris perintah
Opsi pertama untuk meneruskan data ke sumber daya deploymentScripts
adalah mengkostumisasi properti arguments
. Properti arguments
mengambil string argumen seperti yang Anda berikan di baris perintah. Argumen ini diberikan ke properti command
instans kontainer Azure yang akan menjalankan skrip.
Catatan
Beberapa penguraian terjadi, sehingga uji beberapa variasi properti arguments
Anda. Ini akan dipecah menjadi larik string dengan cara yang sama seperti garis perintah urai shell 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'
}
Menggunakan variabel lingkungan
Opsi kedua Adalah membuat variabel lingkungan yang dapat diakses skrip Anda.
"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'
}
Salah satu manfaat menggunakan variabel lingkungan adalah Anda dapat menggunakan secureValue
opsi untuk rahasia yang mungkin perlu diteruskan ke skrip penyebaran.
"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'
}
Melewati parameter
Seperti yang telah Anda pelajari, Anda dapat mengatur nilai parameter langsung di properti skrip penyebaran. Ada beberapa opsi lain untuk nilai yang bisa diteruskan. Anda dapat menggunakan nilai dinamis yang berasal dari sumber daya yang dibuat sebelumnya, variabel yang dideklarasikan dalam templat, atau parameter yang diteruskan langsung ke templat pada waktu penyebaran.
Skenario ini tersedia melalui fungsi template di properti arguments
atau environmentVariables
. Anda dapat menggunakan salah satu fungsi template ARM untuk mengakses nilai dan meneruskannya ke templat. Fungsi ini termasuk reference
, parameters
, atau variables
.
Skenario ini tersedia melalui fungsi template di properti arguments
atau environmentVariables
. Anda dapat menggunakan salah satu fitur Bicep untuk mengakses nilai dan meneruskannya ke templat, seperti merujuk ke properti dari sumber daya lain dengan menggunakan nama simbolis mereka, dan merujuk pada parameter dan variabel.