Parametreleri ve çıktıları kullanarak Azure Resource Manager şablonunuza esneklik ekleme
Son ünitede bir Azure Resource Manager (ARM) şablonu oluşturdunuz ve bu şablona bir Azure depolama hesabı eklediniz. Şablonunuzla ilgili bir sorun olduğunu fark edebilirsiniz. Depolama hesabı adı sabit kodlanmış. Bu şablonu yalnızca her seferinde aynı depolama hesabını dağıtmak için kullanabilirsiniz. Farklı bir ada sahip bir depolama hesabı dağıtmak için, dağıtımlarınızı otomatikleştirmenin pratik bir yolu olmayan yeni bir şablon oluşturmanız gerekir. Depolama hesabı SKU'su da sabit kodlanmıştır; başka bir deyişle farklı ortamlar için depolama hesabı türünü değiştiremezsiniz. Senaryomuzda her dağıtımın farklı bir depolama hesabı türü olabileceğini unutmayın. Depolama hesabı SKU’su için bir parametre ekleyerek şablonunuzu daha fazla yeniden kullanılabilir hale getirebilirsiniz.
Bu ünitede şablonun parameters ve outputs bölümleri hakkında bilgi edineceksiniz.
ARM şablonu parametreleri
ARM şablonu parametreleri, belirli bir ortam için uyarlanmış değerler sağlayarak dağıtımı özelleştirmenize olanak tanır. Örneğin geliştirme, test veya üretim ortamına ya da başka bir ortama dağıtmanıza bağlı olarak farklı değerler iletirsiniz. Örneğin, önceki şablonda Standard_LRS depolama hesabı SKU’su kullanılır. Depolama hesabı SKU’sunun adını bir parametre yaparak depolama hesabı oluşturan diğer dağıtımlar için bu şablonu yeniden kullanabilirsiniz. Daha sonra, şablon dağıtıldığında bu dağıtım için istediğiniz SKU’nun adını iletirsiniz. Komut satırında veya parametre dosyası kullanarak bu adımı uygulayabilirsiniz.
Şablonun parameters
bölümünde, kaynakları dağıtırken hangi değerleri girebileceğinizi belirtirsiniz. Bir şablonda 256 parametreyle sınırlı olursunuz. Parametre tanımları, şablon işlevlerinin çoğunu kullanabilir.
Bir parametre için kullanılabilir özellikler şunlardır:
"parameters": {
"<parameter-name>": {
"type": "<type-of-parameter-value>",
"defaultValue": "<default-value-of-parameter>",
"allowedValues": [
"<array-of-allowed-values>"
],
"minValue": <minimum-value-for-int>,
"maxValue": <maximum-value-for-int>,
"minLength": <minimum-length-for-string-or-array>,
"maxLength": <maximum-length-for-string-or-array-parameters>,
"metadata": {
"description": "<description-of-the-parameter>"
}
}
}
İzin verilen parametre türleri şunlardır:
- Dize
- secureString
- integers
- boolean
- nesne
- secureObject
- dizi
Parametreleri kullanma önerileri
Ortama göre değişen ayarlar için parametreleri kullanın; örneğin, SKU, boyut veya kapasite. Ayrıca, kolay tanımlama veya iç adlandırma kurallarına uymak için kendinizi belirtmek istediğiniz kaynak adları için parametreleri kullanın. Her parametrenin açıklamasını sağlayın ve mümkün olduğunca varsayılan değerleri kullanın.
Güvenlik nedeniyle, şablonlarda kullanıcı adları ve/veya parolalar için hiçbir zaman sabit kodlama veya varsayılan değerler sağlamayın. Her zaman kullanıcı adları ve parolalar (veya gizli diziler) için parametreleri kullanın. Tüm parolalar ve gizli diziler için secureString kullanın. Hassas verileri bir JSON nesnesine geçirirseniz secureObject türünü kullanın. secureString veya secureObject türlerine sahip şablon parametreleri, kaynağın dağıtımından sonra okunamaz veya kullanılamaz.
ARM şablonunda parametreleri kullanma
ARM şablonunun parametreler bölümünde, kaynakları dağıtırken girebileceğiniz parametreleri belirtin. Bir şablonda 256 parametreyle sınırlı olursunuz.
Burada, şablonun bölümünde tanımlanan depolama hesabı SKU'su için parametre içeren bir şablon dosyası örneği verilmiştır parameters
. Yürütmede bir değer belirtilmediyse kullanılacak parametre için varsayılan değer sağlayabilirsiniz.
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
],
"metadata": {
"description": "Storage Account type"
}
}
}
Daha sonra kaynak tanımında parametreyi kullanın. Söz dizimi [parameters('name of the parameter')]
şeklindedir. Ardından, dağıttığınızda işlevini kullanırsınız parameters
. Sonraki modülde işlevler hakkında daha fazla bilgi edineceksiniz.
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-05-01",
"name": "learntemplatestorage123",
"location": "[resourceGroup().location]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
Şablonu dağıtırken parametresi için bir değer sağlayabilirsiniz. Aşağıdaki komutun son satırına dikkat edin:
templateFile="azuredeploy.json"
az deployment group create \
--name testdeployment1 \
--template-file $templateFile \
--parameters storageAccountType=Standard_LRS
ARM şablonu çıkışları
ARM şablonunuzun çıkışlar bölümünde, başarılı bir dağıtımdan sonra döndürülen değerleri belirtebilirsiniz. Çıktılar bölümünü oluşturan öğeler aşağıda verilmiştir.
"outputs": {
"<output-name>": {
"condition": "<boolean-value-whether-to-output-value>",
"type": "<type-of-output-value>",
"value": "<output-value-expression>",
"copy": {
"count": <number-of-iterations>,
"input": <values-for-the-variable>
}
}
}
Öğe | Açıklama |
---|---|
output-name | Geçerli bir JavaScript tanımlayıcısı olmalıdır. |
koşul | (İsteğe bağlı) Bu çıkış değerinin döndürülüp döndürülmeyeceğini belirten bir Boole değeri. True olduğunda değer, dağıtımın çıktısına dahil edilir. False olduğunda, bu dağıtım için çıktı değeri atlanır. Belirtilmediğinde, varsayılan değer true olur. |
type | Çıktı değerinin türü. |
value | (İsteğe bağlı) Değerlendirilecek ve çıkış değeri olarak döndürülecek bir şablon dili ifadesi. |
kopya etmek | (İsteğe bağlı) Bir çıkış için birden fazla değer döndürmek istiyorsanız copy kullanılır. |
ARM şablonunda çıkışları kullanma
Depolama hesabının uç noktalarının çıkışını almak için bir örnek aşağıda verilmiştir:
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference('learntemplatestorage123').primaryEndpoints]"
}
}
İfadenin reference
bölümüne dikkat edin. Bu işlev, depolama hesabının çalışma zamanı durumunu alır.
ARM şablonunu yeniden dağıtma
ARM şablonlarının bir kez etkili olduğunu hatırlayın; başka bir deyişle şablonu aynı ortama yeniden dağıtabilirsiniz ve şablonda hiçbir değişiklik olmazsa ortamda hiçbir şey değişmez. Şablonda bir değişiklik yapılırsa (örneğin, parametre değerini değiştirirseniz), yalnızca bu değişiklik dağıtılır. Şablonunuz, Azure çözümünüz için ihtiyacınız olan tüm kaynakları içerebilir ve bir şablonu tekrar güvenli şekilde çalıştırabilirsiniz. Kaynaklar yalnızca henüz mevcut değilse oluşturulur ve yalnızca bir değişiklik olduğunda güncelleştirilir.