Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Resource Manager şablonunuzda (ARM şablonu) çıkış değerlerinin nasıl tanımlanacağı açıklanır. Dağıtılan kaynaklardan değer döndürmeniz gerektiğinde çıkışları kullanırsınız.
Her çıkış değerinin biçimi, veri türlerinden birine çözümlenmelidir.
Tavsiye
ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep önerilir. Daha fazla bilgi edinmek için bkz.
Bir şablonda 64 çıkışla sınırlısınız. Daha fazla bilgi için bkz. şablon sınırları.
Çıkış değerlerini tanımlayın
Aşağıdaki örnekte, dağıtılan bir kaynaktan bir özelliğin nasıl döndürüleceği gösterilmektedir. Çıkışlar bölümünü şablona ekleyin. Çıkış değeri, genel IP adresi için tam etki alanı adını alır:
"outputs": {
"hostname": {
"type": "string",
"value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))).dnsSettings.fqdn]"
},
}
Adında kısa çizgi bulunan bir özelliğin çıktısını almanız gerekiyorsa, noktalı virgül yerine adın çevresinde köşeli ayraç kullanın. Örneğin, ['property-name'] yerine .property-name kullanın.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"user": {
"user-name": "Test Person"
}
},
"resources": [
],
"outputs": {
"nameResult": {
"type": "string",
"value": "[variables('user')['user-name']]"
}
}
}
Koşullu çıkış
Koşullu olarak bir değer döndürmek için öğesini kullanabilirsiniz condition . Genellikle, bir kaynağı koşullu olarak dağıttığınızda koşullu çıkış kullanırsınız. Aşağıdaki örnekte, yeni bir ip adresinin dağıtılıp dağıtılmadığını temel alarak genel IP adresinin kaynak kimliğini koşullu olarak döndürme gösterilmektedir:
"outputs": {
"resourceID": {
"condition": "[equals(parameters('publicIpNewOrExisting'), 'new')]",
"type": "string",
"value": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIPAddresses_name'))]"
}
}
Koşullu çıktının basit bir örneği için koşullu çıktı şablonuna bakın.
Dinamik çıkış sayısı
Bazı senaryolarda, şablonu oluştururken döndürmeniz gereken bir değerin örnek sayısını bilemezsiniz. Yinelemeli çıktı kullanarak değişken sayıda değer döndürebilirsiniz. Çıktıyı copy yinelemek için öğesini ekleyin:
"outputs": {
"storageEndpoints": {
"type": "array",
"copy": {
"count": "[parameters('storageCount')]",
"input": "[reference(concat(copyIndex(), variables('baseName'))).primaryEndpoints.blob]"
}
}
}
Daha fazla bilgi için bkz. ARM şablonlarında çıkış yinelemesi.
Bağlı şablonlar
Bağlantılı şablonları kullanarak ilgili şablonları dağıtabilirsiniz. Bağlantılı şablondan çıkış değerini almak için üst şablondaki işlevini kullanın reference . Üst şablondaki sözdizimi şöyledir:
"[reference('<deploymentName>').outputs.<propertyName>.value]"
Aşağıdaki örnekte, bağlı şablondan bir değer alarak yük dengeleyicide IP adresinin nasıl ayarlanacağı gösterilmektedir:
"publicIPAddress": {
"id": "[reference('linkedTemplate').outputs.resourceID.value]"
}
Özellik adında kısa çizgi varsa, adın etrafında nokta gösterimi yerine köşeli parantez kullanın.
"publicIPAddress": {
"id": "[reference('linkedTemplate').outputs['resource-ID'].value]"
}
İşlevi referenceiç içe bir şablonunçıkışlar bölümünde kullanamazsınız. İç içe şablonda dağıtılan bir kaynağın değerlerini döndürmek için, iç içe şablonunuzu bağlantılı bir şablona dönüştürün.
- Genel-IP adresi şablonu bir genel IP adresi oluşturur ve kaynak kimliğini verir.
- Yük dengeleyici şablonu, önceki şablona bağlanır. Yük dengeleyiciyi oluştururken çıkıştaki kaynak kimliğini kullanır.
Örnek şablon
Aşağıdaki şablon herhangi bir kaynak dağıtmaz. Farklı türlerdeki çıkışları döndürmenin bazı yollarını gösterir:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"stringOutput": {
"type": "string",
"value": "[deployment().name]"
},
"integerOutput": {
"type": "int",
"value": "[length(environment().authentication.audiences)]"
},
"booleanOutput": {
"type": "bool",
"value": "[contains(deployment().name, 'demo')]"
},
"arrayOutput": {
"type": "array",
"value": "[environment().authentication.audiences]"
},
"objectOutput": {
"type": "object",
"value": "[subscription()]"
}
}
}
Çıkış değerlerini alma
Dağıtım başarılı olduğunda, dağıtım sonuçlarında çıkış değerleri otomatik olarak döndürülür.
Dağıtım geçmişinden çıkış değerlerini almak için betik kullanabilirsiniz.
(Get-AzResourceGroupDeployment `
-ResourceGroupName <resource-group-name> `
-Name <deployment-name>).Outputs.resourceID.value
Çıkışlardaki nesneleri sıralama
JSON'da nesne, sıfır veya daha fazla anahtar/değer çifti içeren sıralanmamış bir koleksiyondur. Sıralama, uygulamalara bağlı olarak farklı olabilir. Örneğin, Bicep items() işlevi nesneleri alfabetik düzende sıralar. Diğer yerlerde özgün sıralama korunabilir. Bu determinizm olmadığından, dağıtım parametreleri ve çıkışlarıyla etkileşim kuran kod yazarken nesne anahtarlarının sıralanmasıyla ilgili varsayımlarda bulunmaktan kaçının.
Sonraki Adımlar
Çıkışların kullanılabilir özellikleri hakkında bilgi edinmek için BKZ. ARM şablonlarının yapısı ve söz dizimi.