Fungsi perbandingan untuk templat ARM

Azure Resource Manager menyediakan fungsi berikut untuk mendapatkan nilai yang terkait dengan penyebaran templat Azure Resource Manager Anda saat ini (templat ARM):

Untuk mendapatkan nilai dari sumber daya, grup sumber daya, atau langganan, lihat fungsi sumber daya.

Tip

Bicep direkomendasikan karena menawarkan kemampuan yang sama dengan templat ARM, dan sintaksnya lebih mudah digunakan. Untuk mempelajari selengkapnya, lihat deployment fungsi.

deployer

deployer()

Mengembalikan informasi tentang prinsip penyebaran saat ini.

Di Bicep, gunakan deployer fungsi .

Mengembalikan nilai

Fungsi ini mengembalikan informasi tentang prinsip penyebaran saat ini, termasuk ID penyewa, ID objek, dan nama prinsipal pengguna:

{
  "objectId": "",
  "tenantId": "",
  "userPrincipalName": ""
}

Example

Contoh berikut mengembalikan objek penyebar:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "developerOutput": {
      "type": "object",
      "value": "[deployer()]"
    }
  }
}

Contoh sebelumnya menampilkan objek berikut:

{
  "objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "userPrincipalName":"john.doe@contoso.com"
}

penyebaran

deployment()

Menampilkan informasi tentang operasi penyebaran saat ini.

Di Bicep, gunakan deployment fungsi .

Mengembalikan nilai

Fungsi ini mengembalikan objek yang diteruskan selama penyebaran. Properti dalam objek yang dikembalikan berbeda berdasarkan jika Anda:

  • Menyebarkan templat atau spesifikasi templat.
  • Menyebarkan templat yang merupakan file lokal atau menyebarkan templat yang merupakan file jarak jauh yang diakses melalui URI.
  • Menyebarkan ke grup sumber daya atau menyebarkan ke salah satu cakupan lainnya (langganan Azure, grup manajemen, atau penyewa).

Saat menyebarkan templat lokal ke grup sumber daya, fungsi mengembalikan format berikut:

{
  "name": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Jika templat jarak jauh, templateLink properti disertakan dalam objek yang dikembalikan. Properti templateLink berisi URI templat. Formatnya adalah:

{
  "name": "",
  "properties": {
    "templateLink": {
      "uri": ""
    },
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Untuk informasi selengkapnya, lihat Menggunakan variabel untuk menautkan templat.

Saat menyebarkan spesifikasi templat ke grup sumber daya, fungsi mengembalikan format berikut:

{
  "name": "",
  "properties": {
    "templateLink": {
      "id": ""
    },
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Saat Anda menggunakan langganan Azure, grup manajemen, atau penyewa, objek yang ditampilkan menyertakan properti location. Properti lokasi disertakan saat menggunakan templat lokal atau templat eksternal. Formatnya adalah:

{
  "name": "",
  "location": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Saat menyebarkan templat languageVersion 2.0 , deployment fungsi mengembalikan subset properti terbatas:

{
  "name": "",
  "location": "",
  "properties": {
    "template": {
      "contentVersion": "",
      "metadata": {}
    },
    "templateLink": {
      "id": "",
      "uri": ""
    }
  }
}

Properti location hanya disertakan untuk penyebaran di cakupan langganan, grup manajemen, atau penyewa . Properti templateLink hanya disertakan ketika pengguna menyediakan templat tertaut daripada templat sebaris.

Remarks

Anda dapat menggunakan deployment() untuk menautkan ke templat lain berdasarkan URI templat induk:

"variables": {
  "sharedTemplateUrl": "[uri(deployment().properties.templateLink.uri, 'shared-resources.json')]"
}

Jika Anda menyebarkan ulang templat dari riwayat penyebaran di portal, templat tersebut akan disebarkan sebagai file lokal. Properti templateLink tidak ditampilkan dalam fungsi penyebaran. Jika templat Anda bergantung pada templateLink untuk membuat tautan ke templat lain, jangan gunakan portal untuk menebusnya. Sebagai gantinya, gunakan perintah yang Anda gunakan untuk menyebarkan templat pada awalnya.

Example

Contoh berikut mengembalikan objek penyebaran:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "deploymentOutput": {
      "type": "object",
      "value": "[deployment()]"
    }
  }
}

Contoh sebelumnya menampilkan objek berikut:

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

Untuk penyebaran langganan, contoh berikut mengembalikan objek penyebaran:

{
  "$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()]"
    }
  }
}

environment

environment()

Menampilkan informasi tentang lingkungan Azure yang digunakan untuk penyebaran. Fungsi environment() ini tidak mengetahui konfigurasi sumber daya. Ini hanya dapat mengembalikan akhiran DNS default tunggal untuk setiap jenis sumber daya.

Di Bicep, gunakan environment fungsi .

Remarks

Untuk melihat daftar lingkungan terdaftar untuk akun Anda, gunakan az cloud list atau Get-AzEnvironment.

Mengembalikan nilai

Fungsi ini menampilkan properti untuk lingkungan Azure saat ini. Contoh berikut menunjukkan properti untuk Azure global; sovereign cloud mungkin mengembalikan properti yang sedikit berbeda:

{
  "name": "",
  "gallery": "",
  "graph": "",
  "portal": "",
  "graphAudience": "",
  "activeDirectoryDataLake": "",
  "batch": "",
  "media": "",
  "sqlManagement": "",
  "vmImageAliasDoc": "",
  "resourceManager": "",
  "authentication": {
    "loginEndpoint": "",
    "audiences": [
      "",
      ""
    ],
    "tenant": "",
    "identityProvider": ""
  },
  "suffixes": {
    "acrLoginServer": "",
    "azureDatalakeAnalyticsCatalogAndJob": "",
    "azureDatalakeStoreFileSystem": "",
    "azureFrontDoorEndpointSuffix": "",
    "keyvaultDns": "",
    "sqlServerHostname": "",
    "storage": ""
  }
}

Example

Contoh templat berikut mengembalikan objek lingkungan:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "environmentOutput": {
      "type": "object",
      "value": "[environment()]"
    }
  }
}

Contoh sebelumnya menampilkan objek berikut saat digunakan ke Azure global:

{
  "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)

Menampilkan nilai parameter. Nama parameter yang ditentukan harus ditentukan di bagian parameter templat.

Di Bicep, secara langsung mereferensikan parameter dengan menggunakan nama simbolisnya.

Parameters

Parameter Required Type Description
parameterName Yes string Nama parameter yang akan ditampilkan.

Mengembalikan nilai

Nilai parameter yang ditentukan.

Remarks

Biasanya, Anda menggunakan parameter untuk mengatur nilai sumber daya. Contoh berikut menetapkan nama situs web ke nilai parameter yang diteruskan selama penyebaran.

"parameters": {
  "siteName": {
    "type": "string"
  }
}, "resources": [
  {
    "type": "Microsoft.Web/Sites",
    "apiVersion": "2025-03-01",
    "name": "[parameters('siteName')]",
    ...
  }
]

Example

Contoh berikut menunjukkan penggunaan fungsi yang disederhanakan parameters :

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

Output nilai default dari contoh sebelumnya adalah:

Name Type Value
stringOutput String opsi 1
intOutput Int 1
objectOutput Object {"one": "a", "two": "b"}
arrayOutput Array [1, 2, 3]
crossOutput String opsi 1

Untuk informasi selengkapnya tentang menggunakan parameter, lihat parameter dalam templat ARM.

variables

variables(variableName)

Mengembalikan nilai variabel. Nama variabel yang ditentukan harus ditentukan di bagian variabel templat.

Di Bicep, secara langsung mereferensikan variabel dengan menggunakan nama simbolisnya.

Parameters

Parameter Required Type Description
variableName Yes String Nama variabel yang akan ditampilkan.

Mengembalikan nilai

Nilai variabel yang ditentukan.

Remarks

Biasanya, Anda menggunakan variabel untuk menyederhanakan templat Anda dengan membuat nilai kompleks hanya sekali. Contoh berikut membuat nama unik untuk akun penyimpanan:

"variables": {
  "storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
},
"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  },
  {
    "type": "Microsoft.Compute/virtualMachines",
    "dependsOn": [
      "[variables('storageName')]"
    ],
    ...
  }
],

Example

Contoh berikut mengembalikan nilai variabel yang berbeda:

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

Output nilai default dari contoh sebelumnya adalah:

Name Type Value
exampleOutput1 String myVariable
exampleOutput2 Array [1, 2, 3, 4]
exampleOutput3 String myVariable
exampleOutput4 Object {"property1": "value1", "property2": "value2"}

Untuk informasi selengkapnya tentang menggunakan variabel, lihat variabel dalam templat ARM.

Langkah selanjutnya

Untuk mempelajari selengkapnya tentang bagian dalam templat ARM, lihat struktur dan sintaks templat ARM.