Bagikan melalui


Fungsi cakupan untuk templat ARM

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

Petunjuk / Saran

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

managementGroup

managementGroup()

Mengembalikan objek dengan properti dari grup manajemen dalam penyebaran saat ini.

Di Bicep, gunakan managementGroup fungsi cakupan.

Komentar

managementGroup() hanya dapat digunakan pada penyebaran grup manajemen. Ini mengembalikan grup manajemen saat ini untuk operasi penyebaran. Gunakan untuk 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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    },
    "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": "2024-02-01-preview",
      "scope": "/",
      "name": "[parameters('mgName')]",
      "properties": {
        "details": {
          "parent": {
            "id": "[managementGroup().id]"
          }
        }
      }
    }
  ],
  "outputs": {
    "newManagementGroup": {
      "type": "string",
      "value": "[parameters('mgName')]"
    }
  }
}

Kelompok Sumber Daya

resourceGroup()

Mengembalikan objek yang mewakili grup sumber daya saat ini.

Di Bicep, gunakan resourceGroup fungsi cakupan.

Mengembalikan nilai

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 Aplikasi Terkelola, Databricks, dan AKS, nilai properti adalah ID sumber daya pengelola sumber daya.

Komentar

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 resourceGroup() fungsi dalam templat tertaut atau berlapis (dengan cakupan dalam) yang menargetkan grup sumber daya, bahkan ketika templat induk disebarkan ke langganan. Dalam skenario tersebut, templat tertaut 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 langganan atau grup sumber daya.

Penggunaan resourceGroup umum fungsi ini adalah 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 resourceGroup fungsi 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 resourceGroup fungsi. Untuk informasi selengkapnya, 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.

Di Bicep, gunakan subscription fungsi cakupan.

Mengembalikan nilai

Fungsi mengembalikan format berikut:

{
  "id": "/subscriptions/{subscription-id}",
  "subscriptionId": "{subscription-id}",
  "tenantId": "{tenant-id}",
  "displayName": "{name-of-subscription}"
}

Komentar

Saat menggunakan templat berlapis untuk disebarkan ke beberapa langganan, Anda dapat menentukan cakupan untuk mengevaluasi subscription fungsi. Untuk informasi selengkapnya, lihat Menyebarkan sumber daya Azure ke lebih dari satu langganan atau grup sumber daya.

Contoh langganan

Contoh berikut menunjukkan fungsi yang subscription 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()]"
    }
  }
}

penyewa

tenant()

Mengembalikan penyewa pengguna.

Di Bicep, gunakan tenant fungsi cakupan.

Komentar

tenant() dapat digunakan dengan cakupan penyebaran apa pun. Ini selalu mengembalikan penyewa saat ini. Gunakan fungsi ini untuk mendapatkan properti untuk penyewa saat ini.

Saat mengatur cakupan untuk templat tertaut atau sumber daya 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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
  }
}

Langkah selanjutnya