Azure Bicep Şablonları ile Parametreleri ve Değişkenleri Kullanma
Yeniden kullanılabilir ve sıklıkla başvurulan değerleri depolamak, Kod Olarak Altyapı (IaC) kullanırken en iyi uygulamalardan biridir. IaC şablonları yazmayı kolaylaştırır ve okunabilirliği artırır, böylece şablonun gövdesinde çok fazla yer kaplayan devasa ifadelere sahip olmazsınız. Azure Bicep Şablonları, bunu başarmak için parametreleri ve değişkenleri kullanır. Parametreleri ve değişkenleri kullanmak, daha düzgün şablonlar oluşturmanın ilk adımıdır ve parolalar gibi güvenli değerleri sabit kodlamaktan kaçınmak için bir güvenlik önerisidir.
Şablonlarda parametre kullanmanın ana nedenlerinden biri, alan değerlerini sabit kodlamaktan kaçınmaktır. Sabit kaynak adlarınız varsa şablonunuzda fazla esneklik yoktur. Şablonu farklı bir konuma yeniden dağıtmanız gerekirse, şablonunuz birden çok dosyadaki değeri değiştirmek yerine konum değişkenini tek bir kaynaktan güncellemenize izin vermelidir. Azure’daki bazı kaynak türlerinin genel olarak benzersiz bir ad gerektirdiğini belirtmekte fayda var, bu nedenle farklı dağıtımların benzersiz kaynak adları kullandığından emin olmanız gerekir. Bu, dünyanın her yerinde hiç kimsenin kaynağınızla aynı kaynak adına sahip olamayacağı anlamına gelir (web uygulaması adları buna iyi bir örnektir).
Parametreler aşağıdaki senaryolar için mükemmeldir:
- Kaynaklar için benzersiz adlar (bazı Azure kaynakları, genel olarak benzersiz kaynak adları gerektirir)
- Dış konumlara erişmek için güvenli değerlerden ve sırlardan geçme (ör. bir blob kapsayıcısındaki bir dosyaya erişmek için bir SAS belirteci)
- Kaynak SKU’ları gibi birden çok dağıtım seçeneğine sahip kaynaklar
Bir Bicep şablonunda param anahtar sözcüğünü kullanarak bir parametre tanımlarsınız:
param storageAccountName string = 'msazureturkeystorage2324'
- param: Bu, Bicep Şablonuna bir parametre tanımlamak üzere olduğunuzu söyler.
- storageAccountName: Bu, parametrenin adıdır. Parametre değerini bu ismin içinde saklayacaksınız. Şablon boyunca bu değeri çağırmak istediğinizde, parametre adına başvurursunuz.
- string: Bu parametre tipidir ve Bicep’e parametre değerinin bir string olacağını söyler. Bicep, parametre türleri olarak dizi, dizi, tamsayı, boolean ve nesneyi kabul eder.
- = ‘msazureturkeystorage2324’: Parametre değeri eşittir işaretinden sonra verilir. Bir dize için bu, tırnak işareti arasına alınır: ”.
Yukarıdaki örnekte, bir Azure Depolama Hesabı için bir parametre adı tanımlanmıştır. Bir Bicep Şablonu içindeki bir kaynak değeri için bu parametreyi arayabilirsiniz. Aşağıdaki kod parçacığı, bu parametreye başvuran bir Depolama Hesabı kaynağını gösterir:
param storageAccountName string = 'msazureturkeystorage2324'
resource storageaccount 'Microsoft.Storage/storageAccounts@2021-02-01' = {
name: storageAccountName
location: location
kind: 'StorageV2'
sku: {
name: storageAccountSkuName
}
}
Not: Parametreler genellikle Bicep Şablonunun en üstüne yazılır. Değişkenler ve kaynaklar için parametreler bölümünden sonra bir satır sonu vardır.
Çağırmak için yararlı bir yinelenen işlev birleştirmedir. Bu işlev, farklı ifadeleri birleştirmenizi sağlar. Concat işlevini çağırmanız gereken ARM Şablonlarından farklı olarak, ${ ve } içinde bir ifade kapsüllemeniz gerekir. Ardından, onu bir dize veya başka bir kapsüllenmiş ifadeyle bağlarsanız, output bu iki ifadeyi birleştirecektir. Örneğin:
param example1 string = 'hello'
param example2 string = 'world'
param example3 string = '${example1}${example2}'
example3’ün çıktısı helloworld olacaktır.
Değişkenler, muhtemelen farklı dağıtımlar arasında değişmeyecek bilgileri depolamanıza olanak tanır. Örneğin, birden çok işlevi birleştiren karmaşık bir ifadeyi depolamak için kullanabilirsiniz.
Bir değişkeni tanımlamak için var anahtar kelimesini kullanırsınız:
var storagePrefix = 'storage${resourceGroup().id}${uniqueString(resourceGroup().id)}'
- var: Bu, Bicep Şablonuna bir değişken tanımlamak üzere olduğunuzu söyler.
- storagePrefix: Bu, değişkenin adıdır. Değişken değerini bu ismin içinde saklayacaksınız. Şablon boyunca bu değeri çağırmak istediğinizde, değişken adına başvurmanız yeterlidir.
- = ‘storage${resourceGroup().id}${uniqueString(resourceGroup().id)}’: Değişkenin buradaki değeri bir ifadedir, özellikle tırnak işareti arasına alındığı için array tipi bir değişkendir.
Parametrelerden farklı olarak, değişken tipini (ör. string, array) yazmanıza gerek olmadığını fark edeceksiniz. Bunun nedeni, Bicep’in ifade tipini akıllıca tanıyabilmesidir.
Yukarıdaki örnekte, bir Azure Depolama Hesabı adının öneki olarak kullanabileceğimiz benzersiz bir dize oluşturan bir değişken tanımladık. Bir Bicep Şablonu içindeki kaynak değeri için bu değişkeni arayabilirsiniz. Aşağıdaki kod parçacığı, bu değişkene başvuran bir Depolama Hesabı kaynağını gösterir:
param env string = 'dev'
var storagePrefix= 'stor${resourceGroup().id}${uniqueString(resourceGroup().id)}'
resource storageaccount 'Microsoft.Storage/storageAccounts@2021-02-01' = {
name: '${storagePrefix}${env}'
location: 'northeurope'
kind: 'StorageV2'
sku: {
name: 'Premium_LRS'
}
}
Burada, Depolama Hesabı kaynağı, Depolama Hesabı adına storagePrefix değişkenine başvuruda bulundu.
Not: Yukarıdaki örnekte de görüldüğü gibi değişkenler genellikle parametreler bölümünden sonra yazılır.