Fungsi cakupan untuk templat ARM
Resource Manager menyediakan fungsi berikut untuk mendapatkan nilai cakupan penyebaran di templat Azure Resource Manager (templat ARM):
Untuk mendapatkan nilai dari parameter, variabel, atau penyebaran saat ini, lihat Fungsi nilai penyebaran.
Tip
Kami merekomendasikan Bicep karena menawarkan kemampuan yang sama dengan templat ARM dan sintaksnya lebih mudah digunakan. Untuk mempelajari selengkapnya, lihat fungsi cakupan.
managementGroup
managementGroup()
Mengembalikan objek dengan properti dari grup manajemen dalam penyebaran saat ini.
Pada Bicep, gunakan fungsi cakupan managementGroup.
Keterangan
managementGroup()
hanya dapat digunakan pada penyebaran grup manajemen. Hal ini akan mengembalikan kelompok manajemen saat ini untuk operasi penyebaran. Gunakan agar mendapatkan properti untuk grup manajemen saat ini.
Mengembalikan nilai
Objek dengan properti untuk grup manajemen saat ini.
Contoh grup manajemen
Contoh berikut mengembalikan properti untuk grup manajemen saat ini.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"mgInfo": "[managementGroup()]"
},
"resources": [],
"outputs": {
"mgResult": {
"type": "object",
"value": "[variables('mgInfo')]"
}
}
}
Fungsi ini menghasilkan:
"mgResult": {
"type": "Object",
"value": {
"id": "/providers/Microsoft.Management/managementGroups/examplemg1",
"name": "examplemg1",
"properties": {
"details": {
"parent": {
"displayName": "Tenant Root Group",
"id": "/providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000"
},
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedTime": "2020-07-23T21:05:52.661306Z",
"version": "1"
},
"displayName": "Example MG 1",
"tenantId": "00000000-0000-0000-0000-000000000000"
},
"type": "/providers/Microsoft.Management/managementGroups"
}
}
Contoh berikutnya membuat grup manajemen baru dan menggunakan fungsi ini untuk mengatur grup manajemen induk.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[format('mg-{0}', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2020-05-01",
"scope": "/",
"name": "[parameters('mgName')]",
"properties": {
"details": {
"parent": {
"id": "[managementGroup().id]"
}
}
}
}
],
"outputs": {
"newManagementGroup": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
resourceGroup
resourceGroup()
Menampilkan objek yang mewakili grup sumber daya saat ini.
Pada Bicep, gunakan fungsi cakupan resourceGroup.
Nilai kembali
Objek yang dikembalikan dalam format berikut:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
Properti managedBy dikembalikan hanya untuk grup sumber daya yang berisi sumber daya yang dikelola oleh layanan lain. Untuk Managed Applications, Databricks, dan AKS, nilai propertinya adalah ID sumber daya dari sumber daya pengelolaan.
Keterangan
Fungsi resourceGroup()
tidak dapat digunakan dalam templat yang disebarkan di tingkat langganan. Ini hanya dapat digunakan dalam templat yang disebarkan ke grup sumber daya. Anda dapat menggunakan fungsi resourceGroup()
dalam templat yang ditautkan atau berlapis (dengan cakupan dalam) yang menargetkan grup sumber daya, bahkan saat templat induk disebarkan ke langganan. Dalam skenario tersebut, templat yang ditautkan atau berlapis disebarkan di tingkat grup sumber daya. Untuk informasi selengkapnya tentang menargetkan grup sumber daya dalam penyebaran tingkat langganan, lihat Menyebarkan sumber daya Azure ke lebih dari satu grup langganan atau sumber daya.
Penggunaan umum fungsi resourceGroup adalah untuk membuat sumber daya di lokasi yang sama dengan grup sumber daya. Contoh berikut menggunakan lokasi grup sumber daya untuk nilai parameter default.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
Anda juga dapat menggunakan fungsi resourceGroup
untuk menerapkan tag dari grup sumber daya ke sumber daya. Untuk informasi selengkapnya, lihat Menerapkan tag dari grup sumber daya.
Saat menggunakan templat berlapis untuk disebarkan ke beberapa grup sumber daya, Anda dapat menentukan cakupan untuk mengevaluasi fungsi resourceGroup
. Untuk informasi lebih lanjut, lihat Menyebarkan sumber daya Azure ke lebih dari satu langganan atau grup sumber daya.
Contoh grup sumber daya
Contoh berikut mengembalikan properti grup sumber daya.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "object",
"value": "[resourceGroup()]"
}
}
}
Contoh sebelumnya mengembalikan objek dalam format berikut:
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
langganan
subscription()
Mengembalikan detail tentang langganan untuk penyebaran saat ini.
Pada Bicep, gunakan fungsi cakupan langganan.
Nilai kembali
Fungsi ini mengembalikan format berikut:
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
Keterangan
Saat menggunakan templat berlapis untuk disebarkan ke beberapa langganan, Anda bisa menentukan cakupan untuk mengevaluasi fungsi langganan. Untuk informasi lebih lanjut, lihat Menyebarkan sumber daya Azure ke lebih dari satu langganan atau grup sumber daya.
Contoh langganan
Contoh berikut menunjukkan fungsi langganan yang dipanggil di bagian output.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"subscriptionOutput": {
"type": "object",
"value": "[subscription()]"
}
}
}
tenant
tenant()
Mengembalikan penyewa pengguna.
Pada Bicep, gunakan fungsi cakupan tenant.
Keterangan
tenant()
dapat digunakan dengan cakupan penyebaran apa pun. Itu selalu mengembalikan penyewa saat ini. Gunakan fungsi ini agar mendapatkan properti untuk penyewa saat ini.
Saat mengatur cakupan untuk templat tertaut atau sumber ekstensi, gunakan sintaks: "scope": "/"
.
Mengembalikan nilai
Objek dengan properti tentang penyewa saat ini.
Contoh penyewa
Contoh berikut mengembalikan properti untuk penyewa.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"tenantInfo": "[tenant()]"
},
"resources": [],
"outputs": {
"tenantResult": {
"type": "object",
"value": "[variables('tenantInfo')]"
}
}
}
Fungsi ini menghasilkan:
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000"
}
}
Langkah berikutnya
- Untuk deskripsi bagian dalam templat ARM, lihat Memahami struktur dan sintaksis templat ARM.
- Untuk menggabungkan beberapa templat, lihat Menggunakan templat yang ditautkan dan templat berlapis saat menyebarkan sumber daya Azure.
- Untuk mengulang jumlah waktu yang ditentukan saat membuat jenis sumber daya, lihat Perulangan sumber daya di templat ARM.
- Untuk melihat cara menyebarkan templat yang telah Anda buat, lihat Menyebarkan sumber daya dengan templat ARM dan Azure PowerShell.