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