Fungsi cakupan untuk Bicep

Artikel ini menjelaskan fungsi Bicep untuk mendapatkan nilai cakupan.

managementGroup

managementGroup()

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

managementGroup(identifier)

Mengembalikan objek yang digunakan untuk menyetel cakupan ke grup manajemen.

Namespace: az.

Keterangan

managementGroup() hanya dapat digunakan pada penyebaran grup manajemen. Hal ini akan mengembalikan kelompok manajemen saat ini untuk operasi penyebaran. Gunakan saat mendapatkan objek lingkup atau mendapatkan properti untuk grup manajemen saat ini.

managementGroup(identifier) dapat digunakan untuk lingkup penyebaran apa pun, tetapi hanya ketika mendapatkan objek lingkup. Untuk mengambil properti untuk grup manajemen, Anda tidak dapat lulus dalam pengenal grup manajemen.

Parameter

Parameter Diperlukan Jenis Deskripsi
pengidentifikasi Tidak string Pengidentifikasi unik untuk grup manajemen untuk disebarkan. Jangan gunakan nama tampilan untuk grup manajemen. Jika Anda tidak memberikan nilai, grup manajemen saat ini dikembalikan.

Mengembalikan nilai

Objek yang digunakan menyetel scope properti pada modul atau jenis sumber daya ekstensi. Atau, objek dengan properti untuk grup manajemen saat ini.

Contoh grup manajemen

Contoh berikut menetapkan cakupan modul ke grup manajemen.

param managementGroupIdentifier string

module  'mgModule.bicep' = {
  name: 'deployToMG'
  scope: managementGroup(managementGroupIdentifier)
}

Contoh berikutnya menghasilkan properti untuk grup manajemen saat ini.

targetScope = 'managementGroup'

var mgInfo = managementGroup()

output mgResult object = 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.

targetScope = 'managementGroup'

param mgName string = 'mg-${uniqueString(newGuid())}'

resource newMG 'Microsoft.Management/managementGroups@2020-05-01' = {
  scope: tenant()
  name: mgName
  properties: {
    details: {
      parent: {
        id: managementGroup().id
      }
    }
  }
}

output newManagementGroup string = mgName

resourceGroup

resourceGroup()

Menampilkan objek yang mewakili grup sumber daya saat ini.

resourceGroup(resourceGroupName)

Dan

resourceGroup(subscriptionId, resourceGroupName)

Mengembalikan objek yang digunakan untuk menyetel cakupan ke grup sumber daya.

Namespace: az.

Keterangan

Fungsi resourceGroup memiliki dua kegunaan yang berbeda. Salah satu kegunaannya adalah untuk menyetel cakupan pada modul atau jenis sumber daya ekstensi. Penggunaan lainnya adalah untuk mendapatkan rincian tentang grup sumber daya saat ini. Penempatan fungsi menentukan penggunaannya. Saat digunakan untuk mengeset scope properti, hal itu akan mengembalikan objek cakupan.

resourceGroup()dapat digunakan baik untuk menyetel cakupan atau mendapatkan rincian tentang kelompok sumber daya.

resourceGroup(resourceGroupName) dan resourceGroup(subscriptionId, resourceGroupName) dapat hanya digunakan untuk setelan cakupan.

Parameter

Parameter Diperlukan Jenis Deskripsi
resourceGroupName Tidak string Nama grup sumber daya yang akan disebarkan. Jika Anda tidak memberikan nilai, grup sumber daya saat ini akan dikembalikan.
subscriptionId Tidak string Pengidentifikasi unik untuk langganan yang akan disebarkan. Jika Anda tidak memberikan nilai, langganan saat ini dikembalikan.

Mengembalikan nilai

Saat digunakan untuk menyetel cakupan, fungsi mengembalikan objek yang berlaku untuk scopeproperti pada modul atau jenis sumber daya modul atau ekstensi.

Saat digunakan untuk mendapatkan detail tentang grup sumber daya, fungsi mengembalikan 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.

Contoh grup sumber daya

Contoh berikut mencakup modul ke kelompok sumber daya.

param resourceGroupName string

module exampleModule 'rgModule.bicep' = {
  name: 'exampleModule'
  scope: resourceGroup(resourceGroupName)
}

Contoh templat yang mengembalikan properti grup sumber daya.

output resourceGroupOutput object = 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"
  }
}

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.

param location string = 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.

langganan

subscription()

Mengembalikan detail tentang langganan untuk penyebaran saat ini.

subscription(subscriptionId)

Mengembalikan objek yang digunakan untuk menyetel cakupan ke langganan.

Namespace: az.

Keterangan

Fungsi berlangganan memiliki dua kegunaan yang berbeda. Salah satu kegunaannya adalah untuk menyetel cakupan pada modul atau jenis sumber daya ekstensi. Penggunaan lainnya adalah untuk mendapatkan detail langganan saat ini. Penempatan fungsi menentukan penggunaannya. Saat digunakan untuk mengeset scope properti, hal itu akan mengembalikan objek cakupan.

subscription(subscriptionId) hanya dapat digunakan untuk menyetel cakupan.

subscription() dapat digunakan untuk menyetel cakupan atau mendapatkan detail tentang langganan.

Parameter

Parameter Diperlukan Jenis Deskripsi
subscriptionId Tidak string Pengidentifikasi unik untuk langganan yang akan disebarkan. Jika Anda tidak memberikan nilai, langganan saat ini dikembalikan.

Mengembalikan nilai

Saat digunakan untuk menyetel cakupan, fungsi mengembalikan objek yang berlaku untuk scopeproperti pada modul atau jenis sumber daya modul atau ekstensi.

Saat digunakan untuk mendapatkan detail tentang langganan, fungsi akan mengembalikan format berikut:

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

Contoh langganan

Contoh berikut mencakup modul ke langganan.

module exampleModule 'subModule.bicep' = {
  name: 'deployToSub'
  scope: subscription()
}

Contoh berikutnya mengembalikan detail untuk langganan.

output subscriptionOutput object = subscription()

tenant

tenant()

Mengembalikan objek yang digunakan untuk menyetel cakupan ke penyewa.

Atau

Mengembalikan penyewa pengguna.

Namespace: az.

Keterangan

tenant() dapat digunakan dengan cakupan penyebaran apa pun. Itu selalu mengembalikan penyewa saat ini. Anda dapat menggunakan fungsi ini untuk mengatur ruang lingkup sumber daya, atau untuk mendapatkan properti untuk penyewa saat ini.

Mengembalikan nilai

Objek yang digunakan menyetel scope properti pada modul atau jenis sumber daya ekstensi. Atau, objek dengan properti tentang penyewa saat ini.

Contoh penyewa

Contoh berikut mengembalikan modul yang disebarkan ke penyewa.

module exampleModule 'tenantModule.bicep' = {
  name: 'deployToTenant'
  scope: tenant()
}

Contoh templat yang menghasilkan properti untuk penyewa.

var tenantInfo = tenant()

output tenantResult object = 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"
  }
}

Beberapa sumber daya memerlukan pengaturan ID penyewa untuk properti. Alih-alih melewati ID penyewa sebagai parameter, Anda dapat mengambilnya dengan fungsi penyewa.

resource kv 'Microsoft.KeyVault/vaults@2021-06-01-preview' = {
  name: 'examplekeyvault'
  location: 'westus'
  properties: {
    tenantId: tenant().tenantId
    ...
  }
}

Langkah berikutnya

Untuk mempelajari lebih lanjut tentang cakupan penyebaran, lihat: