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öndürülen değer

Bu işlev, dağıtım sırasında geçirilen nesneyi döndürür. Döndürülen nesnedeki özellikler şunlar olup olmadığınız temelinde farklılık gösterir:

  • 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": ""
  }
}

Bir kaynak grubuna uzak şablon 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')]"
}

Portalın 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ülmedi. Şablonunuz başka bir şablona templateLink bağlantı oluşturmayı kullanıyorsa portalı kullanarak yeniden dağıtmayı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"
  }
}

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

Bicep'te environment 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öndürülen değer

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"
  }
}

parameters

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şvurur.

Parametreler

Parametre Gerekli Tür Description
Parametername Yes string Döndürülecek parametrenin adı.

Döndürülen değer

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')]"
    }
  }
}

Önceki örnekten varsayılan değerleri içeren çıkış:

Ad Tür Değer
stringOutput Dize seçenek 1
intOutput int 1
objectOutput Nesne {"one": "a", "iki": "b"}
arrayOutput Dizi [1, 2, 3]
crossOutput Dize seçenek 1

Parametreleri kullanma hakkında daha fazla bilgi için bkz. ARM şablonlarındaki parametreler.

Değişken

variables(variableName)

değişkeninin 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şvurun.

Parametreler

Parametre Gerekli Tür Description
variableName Evet Dize Döndürülecek değişkenin adı.

Döndürülen değer

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')]"
    }
  }
}

Önceki örnekten varsayılan değerleri içeren çıkış:

Ad Tür Değer
exampleOutput1 Dize myVariable
exampleOutput2 Dizi [1, 2, 3, 4]
exampleOutput3 Dize myVariable
exampleOutput4 Nesne {"property1": "value1", "property2": "value2"}

Değişkenleri kullanma hakkında daha fazla bilgi için bkz. ARM şablonundaki değişkenler.

Sonraki adımlar