Aracılığıyla paylaş


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

Bicep parametre dosyaları, değerleri tanımlayarak main.bicep dosyanıza aktarmanıza olanak sağlar. Parametre dosyası belirli bir abonelikten, ortamdan ve/veya bölgeden değişebilecek değerleri kullanıma sunar. Bir parametre dosyasından yararlanılması, IaC dağıtımlarınızda tutarlılığı sağlarken esneklik de sağlar. Bu esnekliğin bazıları, kuruluşun üretim dışı ortamlarını doğru boyutlandırırken aynı çekirdek altyapıyı koruyarak maliyet avantajlarından yararlanmasına olanak tanıyabilir.

Bu parametre dosyaları, kolaylaştırılmış bir CI/CD dağıtım yaklaşımını etkinleştirmeye de yardımcı olur. Her parametre dosyası kaynak denetimi altındadır ve uygun otomatik dağıtım adımlarına geçirilir. Bu parametre dosyaları tutarlı bir dağıtım deneyimi sağlar.

Bu makalede, parametreleri betiğinizde satır içi değerler olarak geçirmek yerine kullanabileceğiniz bir parametre dosyasının nasıl oluşturulacağı gösterilmektedir. Dosya uzantısıyla .bicepparam bir Bicep parametre dosyası veya parametre değerini içeren bir JSON parametre dosyası kullanabilirsiniz.

Uyarı

Bicep parametre dosyaları yalnızca Bicep CLI sürüm 0.18.4 veya üzeri, Azure CLI sürüm 2.47.0 veya üzeri ve Azure PowerShell sürüm 9.7.1 veya sonraki sürümlerde desteklenir. Bu using none özellik , Bicep CLI sürüm 0.31.0 veya sonraki sürümlerde desteklenir.

Tek bir Bicep dosyası birden çok parametre dosyasıyla ilişkilendirilebilir. Ancak, her parametre dosyası genellikle belirli bir Bicep dosyasına bağlanır, aksi belirtilmedikçe using none. Bu ilişkilendirme, parametre dosyasındaki using deyimi kullanılarak oluşturulur.

Bicep parametre dosyalarını bir Bicep dosyası kullanarak dağıtabileceğiniz JSON parametre dosyalarına derleyebilirsiniz. Daha fazla bilgi için bkz. build-params. Ayrıca bir JSON parametre dosyasını bicep parametre dosyasına da dönüştürebilirsiniz. Daha fazla bilgi için bkz. decompile-params.

Parametre dosyası

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

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

type <user-defined-data-type-name> = <type-expression>

var <variable-name> <data-type> = <variable-value>

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

using ifadesini bir Bicep dosyası, JSON Azure Resource Manager şablonları, Bicep modülleri ve şablon belirtimleri kullanarak uygulayabilirsiniz. Örneğin:

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

Daha fazla bilgi için bkz Using deyimi.

Belirli bir Bicep şablonuna bağlı olmadan yazma veya derleme sırasında parametre dosyasını belirtmek için using none ifadesini uygulayabilirsiniz. Bu, parametre dosyasını belirli bir şablondan ayırır ve parametrelerin dağıtımlar arasında nasıl tanımlandığı ve kullanıldığı konusunda daha fazla esneklik sağlar. Daha fazla bilgi için bkz. None deyimini kullanma.

İfadeleri parametre değerleri olarak 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. Dosyalardaki değişkenleri kullanmak için .bicepparam sürüm 0.21.X veya üzerini kullanmanız gerekir. Aşağıdaki örneklere bakın:

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
}

Kullanıcı tanımlı veri türleri tanımlayabilirsiniz. Örneğin:

using './main.bicep'

// Define a reusable type for tags with optional properties
type TagValues = {
  environment: 'dev' | 'test' | 'production'
  project: string
}

var tagsExample TagValues = {
  environment: 'dev'
  project: 'bicep-sample'
}

param tags = tagsExample

Uyarı

Parametre dosyası, parametre değerlerini düz metin olarak kaydeder. Güvenlik nedeniyle bu yaklaşımı parolalar gibi hassas değerlerle kullanmanızı önermeyiz.

Hassas bir değere sahip bir parametre geçirmeniz gerekiyorsa, değeri bir anahtar kasasında tutmanız gerekir. Parametre dosyanıza hassas bir değer eklemek yerine işlevini kullanarak getSecret dosyayı alın. Daha fazla bilgi için bakınız Azure Key Vault kullanarak Bicep dağıtımı sırasında bir sırrı parametre olarak geçirme.

Parametre türü biçimleri

Aşağıdaki örnekte çeşitli 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ının dosya uzantısı: .bicepparam.

Birden çok ortam dağıtmak için birden fazla parametre dosyası oluşturursunuz. Birden çok parametre dosyası kullandığınızda, bunları kullanımlarına göre etiketleyin. Örneğin, kaynakları dağıtmak için geliştirme için main.dev.bicepparam etiketini ve üretim için main.prod.bicepparam etiketini kullanın.

Parametre değerlerini tanımlama

Parametre adlarını ve değerlerini tanımlamayı belirlemek için Bicep dosyanızı açın. Bicep dosyasının parametreler bölümüne bakın. Aşağıdaki örneklerde main.bicep adlı bir Bicep 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, her parametrenin adını arayın. 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ığınızda, bağlantılı Bicep dosyasından kullanılabilir parametreleri ve bunların açıklamalarını size sorar.

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

Bir param adı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 dosyanızdaki parametre türlerinin Bicep dosyanızla aynı türleri kullanması gerektiğinden parametre türünü gözden geçirin. Bu örnekte, her iki parametre türü de dizelerdir:

using 'main.bicep'

param storagePrefix = ''
param storageAccountType = ''

Varsayılan değer içeren 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 uses default value if not provided.

Uzunluk üst sınırı gibi herhangi bir kısıtlama olup olmadığını görmek için Bicep dosyasının izin verilen değerlerini denetleyin. İzin verilen 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

Visual Studio Code veya Bicep CLI kullanarak parametre dosyası oluşturabilirsiniz. Her iki araç da parametre dosyası oluşturmak için bir Bicep dosyası kullanmanıza olanak sağlar. Bkz. Visual Studio Code yöntemi için parametre dosyası oluşturma ve Bicep CLI yöntemi için parametre oluşturma dosyası .

Bicep parametre dosyasını oluştur

Bicep CLI'dan var olan bir Bicep parametre dosyasını JSON parametre dosyasına dönüştürebilirsiniz. Daha fazla bilgi için Derleme parametreleri dosyasını inceleyin.

Bicep dosyasını parametre dosyası ile dağıtmak

Azure CLI

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

Bicep dosyasını, Azure CLI sürüm 2.53.0 veya üzeri ve Bicep CLI sürüm 0.22.X veya üzeri bir Bicep parametre dosyası kullanarak dağıtabilirsiniz. using Bicep parametreleri dosyasındaki deyimi kullanıldığında, --template-file anahtarı için bir Bicep parametre dosyası belirtirken --parameters anahtarını sağlamanıza 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. Azure CLI kullanarak Bicep dosyalarını dağıtma.

Azure PowerShell

Azure PowerShell'den TemplateParameterFile parametresini kullanarak bir yerel parametre 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. Azure PowerShell ile Bicep dosyalarını dağıtma. Dosyaları dağıtmak .bicep 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.

Dış Bicep parametre dosyaları şu anda desteklenmese de, dosyaya URI sağlayarak bir dış JSON parametre dosyası kullanabilirsiniz. Bir dış parametre dosyası kullandığınızda, dış dosyadaki tüm parametre değerlerini sağlayın. Dış dosya kullandığınızda, diğer değerleri satır içinde veya yerel bir dosyadan iletemezsiniz ve tüm satır içi parametreler göz ardı edilir.

Parametre adı çakışmaları

Bicep dosyanız, Azure PowerShell komutundaki parametrelerden biriyle aynı isme sahip bir parametre içeriyorsa, Azure PowerShell, Bicep dosyanızdaki parametreyi FromTemplate ekiyle birlikte sunar. Örneğin, Bicep dosyanızda ResourceGroupName adlı bir parametre ResourceGroupName parametresiyle New-AzResourceGroupDeployment çatışma olursa, için bir değer sağlamanız istenecektir. Bu karışıklığı önlemek için dağıtım komutları için kullanılmayan parametre adlarını kullanın.