Bicep dağıtımı için parametre dosyaları oluşturma

Betiğinizde parametreleri satır içi değerler olarak geçirmek yerine, dosya uzantısına sahip .bicepparam bir Bicep parametre dosyası veya parametre değerlerini içeren bir JSON parametre dosyası kullanabilirsiniz. Bu makalede parametre dosyalarının nasıl oluşturulacağı gösterilmektedir.

Not

Bicep parametre dosyası yalnızca Bicep CLI sürüm 0.18.4 veya daha yeni, Azure CLI sürüm 2.47.0 veya daha yeni ve Azure PowerShell sürüm 9.7.1 veya daha yeni sürümlerde desteklenir.

Tek bir Bicep dosyasında kendisiyle ilişkilendirilmiş birden çok Bicep parametre dosyası olabilir. Ancak, her Bicep parametre dosyası belirli bir Bicep dosyasına yöneliktir. Bu ilişki, Bicep parametre dosyası içindeki deyimi kullanılarak using oluşturulur.

Bicep parametre dosyalarını bir Bicep dosyasıyla dağıtmak üzere JSON parametre dosyalarına derleyebilirsiniz. Bkz. build-params. Ayrıca bir JSON parametre dosyasını bicep parametre dosyasına da dönüştürebilirsiniz. Bkz . decompile-params.

Parametre dosyası

Parametre dosyası aşağıdaki biçimi kullanır:

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

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

Using deyimini Bicep dosyası, ARM JSON şablonları, Bicep modülleri ve şablon belirtimleriyle kullanabilirsiniz. Örneğin:

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

Daha fazla bilgi için bkz . using deyimi.

İfadeleri varsayılan değerle kullanabilirsiniz. Örneğin:

using 'main.bicep'

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

Ortam değişkenlerine parametre değerleri olarak başvurabilirsiniz. Örneğin:

using './main.bicep'

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

Değişkenleri tanımlayabilir ve kullanabilirsiniz. .bicepparam dosyasında değişkenleri kullanmak için Bicep CLI sürüm 0.21.X veya üzeri gereklidir. Burada bazı örnekler verilmiştir:

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
}

Parametre dosyasının parametre değerlerini düz metin olarak kaydettiğine dikkat edin. Güvenlik nedeniyle, parolalar gibi hassas değerler için bu yaklaşım önerilmez. Hassas bir değere sahip bir parametre geçirmeniz gerekiyorsa, değeri bir anahtar kasasında tutun. Hassas değeri parametre dosyanıza eklemek yerine getSecret işlevini kullanarak alın. Daha fazla bilgi için bkz . Bicep dağıtımı sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma.

Parametre türü biçimleri

Aşağıdaki örnekte farklı parametre türlerinin biçimleri gösterilmektedir: dize, tamsayı, boole, dizi ve nesne.

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'
}

Nesneleri ve dizileri bildirmek için Bicep söz dizimlerini kullanın.

Dosya adı

Bicep parametre dosyası uzantısına .bicepparamsahiptir.

Farklı ortamlara dağıtmak için birden fazla parametre dosyası oluşturursunuz. Parametre dosyalarını adlandırdığınızda, geliştirme ve üretim gibi kullanımlarını tanımlayın. Örneğin, kaynakları dağıtmak için main.dev.bicepparam ve main.prod.bicepparam kullanın.

Parametre değerlerini tanımlama

Parametre adlarının ve değerlerinin nasıl tanımlanacağına karar vermek için Bicep dosyanızı açın. Bicep dosyasının parametreler bölümüne bakın. Aşağıdaki örneklerde adlı main.bicepbicep dosyasındaki parametreler gösterilmektedir.

@maxLength(11)
param storagePrefix string

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

Parametreler dosyasında, dikkate değer ilk ayrıntı her parametrenin adıdır. Parametre dosyanızdaki parametre adları, Bicep dosyanızdaki parametre adlarıyla eşleşmelidir.

using 'main.bicep'

param storagePrefix
param storageAccountType

deyimi, using Bicep parametre dosyasını bir Bicep dosyasına bağlar. Daha fazla bilgi için bkz . using deyimi.

Visual Studio Code'da anahtar sözcüğü param yazdıktan sonra, bağlantılı Bicep dosyasından kullanılabilir parametreleri ve açıklamalarını sorar:

Kullanılabilir parametrelerin isteminin ekran görüntüsü.

Parametre adının üzerine geldiğinizde parametre veri türünü ve açıklamasını görebilirsiniz.

Parametre veri türünün ve açıklamasının ekran görüntüsü.

Parametre türüne dikkat edin. Parametre dosyanızdaki parametre türleri, Bicep dosyanızla aynı türleri kullanmalıdır. Bu örnekte her iki parametre türü de dizedir.

using 'main.bicep'

param storagePrefix = ''
param storageAccountType = ''

Varsayılan değere sahip parametreler için Bicep dosyasını denetleyin. Parametrenin varsayılan değeri varsa, parametre dosyasında bir değer sağlayabilirsiniz, ancak gerekli değildir. Parameters dosya değeri, Bicep dosyasının varsayılan değerini geçersiz kılar.

using 'main.bicep'

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

Bicep'in izin verilen değerlerini ve uzunluk üst sınırı gibi kısıtlamaları denetleyin. Bu değerler, bir parametre için sağlayabileceğiniz değer aralığını belirtir. Bu örnekte, storagePrefix en fazla 11 karakter olabilir ve storageAccountType izin verilen bir değer belirtmelidir.

using 'main.bicep'

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

Parametre dosyası oluşturma

Parametre dosyası oluşturmak için iki seçeneğiniz vardır: Visual Studio Code aracılığıyla veya Bicep CLI kullanarak. Her iki yöntem de parametre dosyasını bir Bicep dosyasından türetmenizi sağlar. Visual Studio Code'da bkz . Parametre oluşturma dosyası. Bicep CLI'dan bkz . Parametre dosyası oluşturma.

Bicep parametre dosyası oluşturma

Bicep CLI'dan bir JSON parametre dosyasına Bicep parametre dosyası oluşturabilirsiniz. Daha fazla bilgi için bkz . Derleme parametreleri dosyası.

Bicep dosyasını parametre dosyasıyla dağıtma

Azure CLI

Azure CLI'dan Bicep dosya dağıtımınızla bir parametre dosyası geçirebilirsiniz.

Azure CLI sürüm 2.53.0 veya üzeri ve Bicep CLI sürüm 0.22.X veya üzeri ile Bicep parametre dosyasını kullanarak bicep dosyası dağıtabilirsiniz. using Bicep parametre dosyasındaki deyimiyle, anahtar için --parameters bir Bicep parametre dosyası belirtirken anahtarı sağlamanıza --template-file gerek yoktur.

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

Aynı dağıtım işleminde satır içi parametreleri ve konum parametreleri dosyasını kullanabilirsiniz. Örneğin:

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

Daha fazla bilgi için bkz . Bicep ve Azure CLI ile kaynakları dağıtma.

Azure PowerShell

Azure PowerShell'den parametresini TemplateParameterFile kullanarak yerel parametreler dosyasını geçirin.

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

Aynı dağıtım işleminde satır içi parametreleri ve konum parametreleri dosyasını kullanabilirsiniz. Örneğin:

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

Daha fazla bilgi için bkz . Bicep ve Azure PowerShell ile kaynak dağıtma. .bicep dosyalarını dağıtmak için Azure PowerShell sürüm 5.6.0 veya üzeri gerekir.

Parametre önceliği

Aynı dağıtım işleminde satır içi parametreleri ve yerel parametreler dosyasını kullanabilirsiniz. Örneğin, yerel parametreler dosyasında bazı değerler belirtebilir ve dağıtım sırasında diğer değerleri satır içine ekleyebilirsiniz. Hem yerel parametreler dosyasında hem de satır içi bir parametre için değerler sağlarsanız, satır içi değer öncelikli olur.

Dosyaya URI sağlayarak bir dış JSON parametre dosyası kullanmak mümkündür. Dış Bicep parametre dosyası şu anda desteklenmiyor. Dış parametre dosyası kullandığınızda, diğer değerleri satır içinde veya yerel bir dosyadan geçiremezsiniz. Tüm satır içi parametreler yoksayılır. Dış dosyadaki tüm parametre değerlerini sağlayın.

Parametre adı çakışmaları

Bicep dosyanız PowerShell komutundaki parametrelerden biriyle aynı ada sahip bir parametre içeriyorsa PowerShell, Bicep dosyanızdan parametresini sonek FromTemplateile birlikte sunar. Örneğin, Bicep dosyanızda adlı ResourceGroupName bir parametre New-AzResourceGroupDeployment cmdlet'indeki parametreyle ResourceGroupName çakılır. için ResourceGroupNameFromTemplatebir değer sağlamanız istenir. Bu karışıklığı önlemek için dağıtım komutları için kullanılmayan parametre adlarını kullanın.

Sonraki adımlar

  • Bicep dosyasında parametreleri tanımlama hakkında daha fazla bilgi için bkz . Bicep'te parametreler.
  • Hassas değerler almak için bkz . Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault'un kullanılması.