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 layanan: 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 | Wajib | Tipe | Deskripsi |
---|---|---|---|
identifier | No | 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. |
Nilai hasil
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": "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.
targetScope = 'managementGroup'
param mgName string = 'mg-${uniqueString(newGuid())}'
resource newMG 'Microsoft.Management/managementGroups@2023-04-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 layanan: 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 | Wajib | Tipe | Deskripsi |
---|---|---|---|
resourceGroupName | No | string | Nama grup sumber daya yang akan disebarkan. Jika Anda tidak memberikan nilai, grup sumber daya saat ini akan dikembalikan. |
subscriptionId | No | string | Pengidentifikasi unik untuk langganan yang akan disebarkan. Jika Anda tidak memberikan nilai, langganan saat ini dikembalikan. |
Nilai hasil
Saat digunakan untuk menyetel cakupan, fungsi mengembalikan objek yang berlaku untuk scope
properti 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 layanan: 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 | Wajib | Tipe | Deskripsi |
---|---|---|---|
subscriptionId | No | string | Pengidentifikasi unik untuk langganan yang akan disebarkan. Jika Anda tidak memberikan nilai, langganan saat ini dikembalikan. |
Nilai hasil
Saat digunakan untuk menyetel cakupan, fungsi mengembalikan objek yang berlaku untuk scope
properti 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()
penyewa
tenant()
Mengembalikan objek yang digunakan untuk menyetel cakupan ke penyewa.
Atau
Mengembalikan penyewa pengguna.
Namespace layanan: 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.
Nilai hasil
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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
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@2023-07-01' = {
name: 'examplekeyvault'
location: 'westus'
properties: {
tenantId: tenant().tenantId
...
}
}
Langkah berikutnya
Untuk mempelajari lebih lanjut tentang cakupan penyebaran, lihat: