ARM şablonları için dağıtım işlevleri
Resource Manager, Azure Resource Manager şablonunuzun (ARM şablonu) geçerli dağıtımıyla ilgili değerleri almak için aşağıdaki işlevleri sağlar:
Kaynaklardan, kaynak gruplarından veya aboneliklerden değer almak için bkz . Kaynak işlevleri.
İpucu
ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep'i öneririz. Daha fazla bilgi edinmek için bkz . dağıtım işlevleri.
dağıtım
deployment()
Geçerli dağıtım işlemi hakkındaki bilgileri döndürür.
Bicep'te dağıtım işlevini kullanın.
Dönüş değeri
Bu işlev, dağıtım sırasında geçirilen nesneyi döndürür. Döndürülen nesnedeki özellikler, aşağıdakilerden farklı olup olmadığınız temelinde değişir:
- bir şablon veya şablon belirtimi dağıtma.
- yerel dosya olan bir şablonu dağıtma veya URI aracılığıyla erişilen uzak dosya olan bir şablonu dağıtma.
- bir kaynak grubuna dağıtma veya diğer kapsamlardan birine dağıtma (Azure aboneliği, yönetim grubu veya kiracı).
Bir kaynak grubuna yerel şablon dağıtırken: işlevi aşağıdaki biçimi döndürür:
{
"name": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Uzak şablonu bir kaynak grubuna dağıtırken: işlevi aşağıdaki biçimi döndürür:
{
"name": "",
"properties": {
"templateLink": {
"uri": ""
},
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Bir kaynak grubuna şablon belirtimi dağıtırken: işlevi aşağıdaki biçimi döndürür:
{
"name": "",
"properties": {
"templateLink": {
"id": ""
},
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Bir Azure aboneliğine, yönetim grubuna veya kiracıya dağıttığınızda, dönüş nesnesi bir location
özellik içerir. Yerel şablon veya dış şablon dağıtılırken location özelliği eklenir. Biçim:
{
"name": "",
"location": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
languageVersion 2.0 şablonunu dağıtırken işlev sınırlı deployment
bir özellik alt kümesi döndürür:
{
"name": "",
"location": "",
"properties": {
"template": {
"contentVersion": ""
},
"templateLink": {
"id": "",
"uri": ""
}
}
}
Açıklamalar
Üst şablonun URI'sini temel alarak başka bir şablona bağlanmak için kullanabilirsiniz deployment()
.
"variables": {
"sharedTemplateUrl": "[uri(deployment().properties.templateLink.uri, 'shared-resources.json')]"
}
Portaldaki dağıtım geçmişinden bir şablonu yeniden dağıtırsanız, şablon yerel dosya olarak dağıtılır. templateLink
özelliği dağıtım işlevinde döndürülmüyor. Şablonunuz başka bir şablona templateLink
bağlantı oluşturmak için kullanıyorsa yeniden dağıtmak için portalı kullanmayın. Bunun yerine, şablonu başlangıçta dağıtmak için kullandığınız komutları kullanın.
Örnek
Aşağıdaki örnek bir dağıtım nesnesi döndürür.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"deploymentOutput": {
"type": "object",
"value": "[deployment()]"
}
}
}
Yukarıdaki örnek aşağıdaki nesneyi döndürür:
{
"name": "deployment",
"properties": {
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"deploymentOutput": {
"type": "Object",
"value": "[deployment()]"
}
}
},
"templateHash": "13135986259522608210",
"parameters": {},
"mode": "Incremental",
"provisioningState": "Accepted"
}
}
Abonelik dağıtımı için aşağıdaki örnek bir dağıtım nesnesi döndürür.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {
"exampleOutput": {
"type": "object",
"value": "[deployment()]"
}
}
}
ortamı
environment()
Dağıtım için kullanılan Azure ortamı hakkındaki bilgileri döndürür. environment()
İşlev, kaynak yapılandırmalarının farkında değildir. Her kaynak türü için yalnızca tek bir varsayılan DNS son eki döndürebilir.
Bicep'te ortam işlevini kullanın.
Açıklamalar
Hesabınız için kayıtlı ortamların listesini görmek için az cloud list veya Get-AzEnvironment kullanın.
Dönüş değeri
Bu işlev, geçerli Azure ortamının özelliklerini döndürür. Aşağıdaki örnekte genel Azure'ın özellikleri gösterilmektedir. Bağımsız bulutlar biraz farklı özellikler döndürebilir.
{
"name": "",
"gallery": "",
"graph": "",
"portal": "",
"graphAudience": "",
"activeDirectoryDataLake": "",
"batch": "",
"media": "",
"sqlManagement": "",
"vmImageAliasDoc": "",
"resourceManager": "",
"authentication": {
"loginEndpoint": "",
"audiences": [
"",
""
],
"tenant": "",
"identityProvider": ""
},
"suffixes": {
"acrLoginServer": "",
"azureDatalakeAnalyticsCatalogAndJob": "",
"azureDatalakeStoreFileSystem": "",
"azureFrontDoorEndpointSuffix": "",
"keyvaultDns": "",
"sqlServerHostname": "",
"storage": ""
}
}
Örnek
Aşağıdaki örnek şablon ortam nesnesini döndürür.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"environmentOutput": {
"type": "object",
"value": "[environment()]"
}
}
}
Yukarıdaki örnek, genel Azure'a dağıtıldığında aşağıdaki nesneyi döndürür:
{
"name": "AzureCloud",
"gallery": "https://gallery.azure.com/",
"graph": "https://graph.windows.net/",
"portal": "https://portal.azure.com",
"graphAudience": "https://graph.windows.net/",
"activeDirectoryDataLake": "https://datalake.azure.net/",
"batch": "https://batch.core.windows.net/",
"media": "https://rest.media.azure.net",
"sqlManagement": "https://management.core.windows.net:8443/",
"vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
"resourceManager": "https://management.azure.com/",
"authentication": {
"loginEndpoint": "https://login.microsoftonline.com/",
"audiences": [
"https://management.core.windows.net/",
"https://management.azure.com/"
],
"tenant": "common",
"identityProvider": "AAD"
},
"suffixes": {
"acrLoginServer": ".azurecr.io",
"azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
"azureDatalakeStoreFileSystem": "azuredatalakestore.net",
"azureFrontDoorEndpointSuffix": "azurefd.net",
"keyvaultDns": ".vault.azure.net",
"sqlServerHostname": ".database.windows.net",
"storage": "core.windows.net"
}
}
parametreler
parameters(parameterName)
Bir parametre değeri döndürür. Belirtilen parametre adı, şablonun parametreler bölümünde tanımlanmalıdır.
Bicep'te, sembolik adlarını kullanarak parametrelere doğrudan başvurun.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
parameterName | Yes | Dize | Döndürülecek parametrenin adı. |
Dönüş değeri
Belirtilen parametrenin değeri.
Açıklamalar
Genellikle kaynak değerlerini ayarlamak için parametreleri kullanırsınız. Aşağıdaki örnek, web sitesinin adını dağıtım sırasında geçirilen parametre değerine ayarlar.
"parameters": {
"siteName": {
"type": "string"
}
}, "resources": [
{
"type": "Microsoft.Web/Sites",
"apiVersion": "2016-08-01",
"name": "[parameters('siteName')]",
...
}
]
Örnek
Aşağıdaki örnekte parameters işlevinin basitleştirilmiş kullanımı gösterilmektedir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"stringParameter": {
"type": "string",
"defaultValue": "option 1"
},
"intParameter": {
"type": "int",
"defaultValue": 1
},
"objectParameter": {
"type": "object",
"defaultValue": {
"one": "a",
"two": "b"
}
},
"arrayParameter": {
"type": "array",
"defaultValue": [ 1, 2, 3 ]
},
"crossParameter": {
"type": "string",
"defaultValue": "[parameters('stringParameter')]"
}
},
"variables": {},
"resources": [],
"outputs": {
"stringOutput": {
"type": "string",
"value": "[parameters('stringParameter')]"
},
"intOutput": {
"type": "int",
"value": "[parameters('intParameter')]"
},
"objectOutput": {
"type": "object",
"value": "[parameters('objectParameter')]"
},
"arrayOutput": {
"type": "array",
"value": "[parameters('arrayParameter')]"
},
"crossOutput": {
"type": "string",
"value": "[parameters('crossParameter')]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
stringOutput | String | seçenek 1 |
intOutput | Int | 1 |
objectOutput | Object | {"one": "a", "two": "b"} |
arrayOutput | Dizi | [1, 2, 3] |
crossOutput | String | seçenek 1 |
Parametreleri kullanma hakkında daha fazla bilgi için bkz . ARM şablonlarındaki parametreler.
değişkenler
variables(variableName)
Değişkenin değerini döndürür. Belirtilen değişken adı, şablonun değişkenler bölümünde tanımlanmalıdır.
Bicep'te, sembolik adlarını kullanarak değişkenlere doğrudan başvurur.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
variableName | Yes | String | Döndürülecek değişkenin adı. |
Dönüş değeri
Belirtilen değişkenin değeri.
Açıklamalar
Genellikle, karmaşık değerleri yalnızca bir kez oluşturarak şablonunuzu basitleştirmek için değişkenleri kullanırsınız. Aşağıdaki örnek, depolama hesabı için benzersiz bir ad oluşturur.
"variables": {
"storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
...
},
{
"type": "Microsoft.Compute/virtualMachines",
"dependsOn": [
"[variables('storageName')]"
],
...
}
],
Örnek
Aşağıdaki örnek farklı değişken değerleri döndürür.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {
"var1": "myVariable",
"var2": [ 1, 2, 3, 4 ],
"var3": "[ variables('var1') ]",
"var4": {
"property1": "value1",
"property2": "value2"
}
},
"resources": [],
"outputs": {
"exampleOutput1": {
"type": "string",
"value": "[variables('var1')]"
},
"exampleOutput2": {
"type": "array",
"value": "[variables('var2')]"
},
"exampleOutput3": {
"type": "string",
"value": "[variables('var3')]"
},
"exampleOutput4": {
"type": "object",
"value": "[variables('var4')]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
exampleOutput1 | String | myVariable |
exampleOutput2 | Dizi | [1, 2, 3, 4] |
exampleOutput3 | String | myVariable |
exampleOutput4 | Object | {"property1": "value1", "property2": "value2"} |
Değişkenleri kullanma hakkında daha fazla bilgi için bkz . ARM şablonundaki değişkenler.
Sonraki adımlar
- ARM şablonundaki bölümlerin açıklaması için bkz . ARM şablonlarının yapısını ve söz dizimini anlama.