Bagikan melalui


Membuat file parameter untuk penyebaran Bicep

Artikel ini memperlihatkan kepada Anda cara membuat file parameter, yang dapat Anda gunakan alih-alih meneruskan parameter sebagai nilai sebaris dalam skrip Anda. Anda dapat menggunakan file parameter Bicep dengan .bicepparam ekstensi file atau file parameter JSON yang berisi nilai parameter.

Catatan

File parameter Bicep hanya didukung di Bicep CLI versi 0.18.4 atau yang lebih baru, Azure CLI versi 2.47.0 atau yang lebih baru, dan Azure PowerShell versi 9.7.1 atau yang lebih baru.

Satu file Bicep dapat memiliki beberapa file parameter Bicep yang terkait dengannya. Namun, setiap file parameter Bicep ditujukan untuk satu file Bicep tertentu. Anda dapat membuat hubungan ini dengan menerapkan using pernyataan dalam file parameter Bicep.

Anda dapat mengkompilasi file parameter Bicep ke dalam file parameter JSON yang dapat Anda sebarkan dengan menggunakan file Bicep. Untuk informasi selengkapnya, lihat build-params . Anda juga dapat mendekompilasi file parameter JSON ke dalam file parameter Bicep. Untuk informasi selengkapnya, lihat decompile-params .

File parameter

File parameter menggunakan format berikut:

using '<path>/<file-name>.bicep'

param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>

Anda dapat menerapkan using pernyataan dengan menggunakan file Bicep, templat JSON Azure Resource Manager, modul Bicep, dan spesifikasi templat. Contohnya:

using './main.bicep'
...
using './azuredeploy.json'
...
using 'br/public:avm/res/storage/storage-account:0.9.0' 
...
using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
...
using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
...

Untuk informasi selengkapnya, lihat Menggunakan pernyataan.

Anda dapat menggunakan ekspresi dengan nilai default. Contohnya:

using 'main.bicep'

param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2

Anda dapat mereferensikan variabel lingkungan sebagai nilai parameter. Contohnya:

using './main.bicep'

param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))

Anda dapat menentukan dan menggunakan variabel. Anda harus menggunakan Bicep CLI versi 0.21.X atau yang lebih baru untuk menggunakan variabel dalam .bicepparam file. Lihat contoh berikut:

using './main.bicep'

var storagePrefix = 'myStorage'
param primaryStorageName = '${storagePrefix}Primary'
param secondaryStorageName = '${storagePrefix}Secondary'
using './main.bicep'

var testSettings = {
  instanceSize: 'Small'
  instanceCount: 1
}

var prodSettings = {
  instanceSize: 'Large'
  instanceCount: 4
}

param environmentSettings = {
  test: testSettings
  prod: prodSettings
}

Catatan

File parameter menyimpan nilai parameter sebagai teks biasa. Untuk alasan keamanan, kami tidak merekomendasikan penggunaan pendekatan ini dengan nilai sensitif seperti kata sandi.

Jika Anda perlu meneruskan parameter dengan nilai sensitif, Anda harus menyimpan nilai dalam brankas kunci. Alih-alih menambahkan nilai sensitif ke file parameter Anda, gunakan getSecret fungsi untuk mengambilnya. Untuk informasi selengkapnya, lihat Menggunakan Azure Key Vault untuk meneruskan rahasia sebagai parameter selama penyebaran Bicep.

Format jenis parameter

Contoh berikut menunjukkan format berbagai jenis parameter: string, bilangan bulat, Boolean, array, dan objek.

using './main.bicep'

param exampleString = 'test string'
param exampleInt = 2 + 2
param exampleBool = true
param exampleArray = [
  'value 1'
  'value 2'
]
param exampleObject = {
  property1: 'value 1'
  property2: 'value 2'
}

Gunakan sintaks Bicep untuk mendeklarasikan objek dan array.

Nama file

Ekstensi file untuk file parameter Bicep adalah .bicepparam.

Untuk menyebarkan ke beberapa lingkungan, Anda membuat lebih dari satu file parameter. Saat Anda menggunakan beberapa file parameter, beri label sesuai dengan penggunaannya. Misalnya, untuk menyebarkan sumber daya, gunakan label main.dev.bicepparam untuk pengembangan dan label main.prod.bicepparam untuk produksi.

Menentukan nilai parameter

Untuk menentukan cara menentukan nama dan nilai parameter, buka file Bicep Anda. Lihat bagian parameter file Bicep. Contoh berikut menunjukkan parameter dari file Bicep bernama main.bicep:

@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_ZRS'
  'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'

Dalam file parameter, cari nama setiap parameter. Nama parameter dalam file parameter Anda harus cocok dengan nama parameter dalam file Bicep Anda.

using 'main.bicep'

param storagePrefix
param storageAccountType

Pernyataan ini using mengikat file parameter Bicep ke file Bicep. Untuk informasi selengkapnya, lihat Menggunakan pernyataan.

Saat Anda mengetik kata kunci di Visual Studio Code, kata kunci param akan meminta parameter yang tersedia dan deskripsinya dari file Bicep yang ditautkan.

Cuplikan layar permintaan parameter yang tersedia.

Saat mengarahkan mouse ke atas param nama, Anda dapat melihat jenis dan deskripsi data parameter.

Cuplikan layar jenis dan deskripsi data parameter.

Tinjau jenis parameter, karena jenis parameter dalam file parameter Anda harus menggunakan jenis yang sama dengan file Bicep Anda. Dalam contoh ini, kedua jenis parameter adalah string:

using 'main.bicep'

param storagePrefix = ''
param storageAccountType = ''

Periksa file Bicep untuk parameter yang menyertakan nilai default. Jika parameter memiliki nilai default, Anda dapat memberikan nilai dalam file parameter, tetapi tidak diperlukan. Nilai file parameter mengambil alih nilai default file Bicep.

using 'main.bicep'

param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep uses default value if not provided.

Untuk melihat apakah ada batasan seperti panjang maksimum, periksa nilai file Bicep yang diizinkan. Nilai yang diizinkan menentukan rentang nilai yang dapat Anda berikan untuk parameter. Dalam contoh ini, storagePrefix dapat memiliki maksimal 11 karakter, dan storageAccountType harus menentukan nilai yang diizinkan.

using 'main.bicep'

param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'

Membuat file parameter

Anda dapat membuat file parameter dengan menggunakan Visual Studio Code atau Bicep CLI. Kedua alat memungkinkan Anda menggunakan file Bicep untuk menghasilkan file parameter. Lihat Membuat file parameter untuk metode Visual Studio Code dan Membuat file parameter untuk metode Bicep CLI.

Membuat file parameter Bicep

Dari Bicep CLI, Anda dapat membangun file parameter Bicep ke dalam file parameter JSON. Untuk informasi selengkapnya, lihat File parameter build.

Menyebarkan file Bicep dengan file parameter

Azure CLI

Dari Azure CLI, Anda dapat meneruskan file parameter dengan penyebaran file Bicep Anda.

Anda dapat menyebarkan file Bicep dengan menggunakan file parameter Bicep dengan Azure CLI versi 2.53.0 atau yang lebih baru dan Bicep CLI versi 0.22.X atau yang lebih baru. using Dengan pernyataan dalam file parameter Bicep, tidak perlu memberikan --template-file sakelar saat menentukan file parameter Bicep untuk --parameters sakelar.

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --parameters storage.bicepparam

Anda dapat menggunakan parameter sebaris dan file parameter lokasi dalam operasi penyebaran yang sama. Contohnya:

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --parameters storage.bicepparam \
  --parameters storageAccountType=Standard_LRS

Untuk informasi selengkapnya, lihat Menyebarkan file Bicep dengan menggunakan Azure CLI.

Azure PowerShell

Dari Azure PowerShell, teruskan file parameter lokal dengan menggunakan TemplateParameterFile parameter .

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile C:\MyTemplates\storage.bicep `
  -TemplateParameterFile C:\MyTemplates\storage.bicepparam

Anda dapat menggunakan parameter sebaris dan file parameter lokasi dalam operasi penyebaran yang sama. Contohnya:

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile C:\MyTemplates\storage.bicep `
  -TemplateParameterFile C:\MyTemplates\storage.bicepparam `
  -storageAccountType Standard_LRS

Untuk informasi selengkapnya, lihat Menyebarkan file Bicep dengan menggunakan Azure PowerShell. Untuk menyebarkan .bicep file, Anda memerlukan Azure PowerShell versi 5.6.0 atau yang lebih baru.

Parameter diutamakan

Anda dapat menggunakan parameter sebaris dan file parameter lokal dalam operasi penyebaran yang sama. Misalnya, Anda dapat menentukan beberapa nilai dalam file parameter lokal dan menambahkan nilai lain sebaris selama penyebaran. Jika Anda memberikan nilai untuk parameter dalam file parameter lokal dan sebaris, nilai sebaris lebih diutamakan.

Meskipun file parameter Bicep eksternal saat ini tidak didukung, Anda dapat menggunakan file parameter JSON eksternal dengan menyediakan URI ke file. Saat Anda menggunakan file parameter eksternal, berikan semua nilai parameter dalam file eksternal. Saat menggunakan file eksternal, Anda tidak dapat meneruskan nilai lain sebaris atau dari file lokal, dan semua parameter sebaris diabaikan.

Konflik nama parameter

Jika file Bicep Anda menyertakan parameter dengan nama yang sama dengan salah satu parameter dalam perintah Azure PowerShell, Azure PowerShell menyajikan parameter dari file Bicep Anda dengan FromTemplate postfix. Misalnya, jika parameter bernama ResourceGroupName dalam file Bicep Anda berkonflik dengan ResourceGroupName parameter di New-AzResourceGroupDeployment cmdlet, Anda diminta untuk memberikan nilai untuk ResourceGroupNameFromTemplate. Untuk menghindari kebingungan ini, gunakan nama parameter yang tidak digunakan untuk perintah penyebaran.