Penyebaran grup sumber daya dengan file Bicep
Artikel ini menjelaskan cara mengatur cakupan dengan Bicep ketika menyebarkan je grup sumber daya.
Sumber daya yang didukung
Sebagian besar sumber daya dapat disebarkan ke grup sumber daya. Untuk daftar sumber daya yang tersedia, lihat Referensi templat ARM.
Menetapkan cakupan
Secara default, file Bicep dicakupkan ke grup sumber daya. Jika Anda ingin secara eksplisit mengatur cakupan, gunakan:
targetScope = 'resourceGroup'
Tetapi, pengaturan cakupan target ke grup sumber daya tidak diperlukan karena cakupan tersebut digunakan secara default.
Perintah penyebaran
Untuk menyebarkan ke grup sumber daya, gunakan perintah penyebaran grup sumber daya.
Untuk Azure CLI, gunakan az deployment group create. Contoh berikut menyebarkan templat untuk membuat grup sumber daya. Grup sumber daya yang Anda tentukan dalam parameter --resource-group
adalah grup sumber daya target.
az deployment group create \
--name demoRGDeployment \
--resource-group ExampleGroup \
--template-file main.bicep \
--parameters storageAccountType=Standard_GRS
Untuk informasi selengkapnya terkait perintah penyebaran dan opsi untuk menyebarkan templat ARM, lihat:
- Menyebarkan sumber daya dengan templat ARM dan Azure CLI
- Menyebarkan sumber daya dengan templat ARM dan Azure PowerShell
- Menyebarkan templat ARM dari Cloud Shell
Cakupan penyebaran
Saat menyebarkan ke grup sumber daya, Anda bisa menggunakan sumber daya untuk:
- grup sumber daya target untuk operasi penyebaran
- grup sumber daya dalam langganan atau langganan lainnya
- langganan apa pun di penyewa
- penyewa untuk grup sumber daya
Sumber daya ekstensi dapat dicakup ke target yang berbeda dari target penyebaran.
Pengguna yang menyebarkan templat harus memiliki akses ke cakupan yang ditentukan.
Bagian ini memperlihatkan cara menentukan cakupan yang berbeda. Anda dapat menggabungkan cakupan yang berbeda ini dalam templat tunggal.
Cakupan untuk menargetkan grup sumber daya
Untuk menyebarkan sumber daya ke grup sumber daya target, tambahkan sumber daya tersebut ke file Bicep.
// resource deployed to target resource group
resource exampleResource 'Microsoft.Storage/storageAccounts@2023-04-01' = {
...
}
Untuk templat contoh, lihat Menerapkan ke grup sumber daya target.
Mencakupkan ke grup sumber daya yang berbeda
Untuk menyebarkan ke grup sumber daya yang bukan merupakan grup sumber daya target, tambahkan modul. Gunakan fungsi resourceGroup untuk mengatur properti scope
untuk modul tersebut.
Jika grup sumber daya berada dalam langganan yang berbeda, sediakan ID langganan dan nama grup sumber daya. Jika grup sumber daya berada dalam langganan yang sama dengan penyebaran saat ini, sediakan hanya nama grup sumber daya. Jika Anda tidak menentukan langganan dalam fungsi resourceGroup, langganan saat ini digunakan.
Contoh berikut menunjukkan modul yang menargetkan grup sumber daya dalam langganan yang berbeda.
param otherResourceGroup string
param otherSubscriptionID string
// module deployed to different subscription and resource group
module exampleModule 'module.bicep' = {
name: 'otherSubAndRG'
scope: resourceGroup(otherSubscriptionID, otherResourceGroup)
}
Contoh berikutnya menunjukkan modul yang menargetkan grup sumber daya dalam langganan yang sama.
param otherResourceGroup string
// module deployed to resource group in the same subscription
module exampleModule 'module.bicep' = {
name: 'otherRG'
scope: resourceGroup(otherResourceGroup)
}
Untuk templat contoh, lihat Menerapkan ke beberapa grup sumber daya.
Cakupan ke langganan
Untuk menyebarkan sumber daya ke langganan, tambahkan modul. Gunakan fungsi langganan untuk mengatur scope
propertinya.
Untuk menyebarkan langganan saat ini, gunakan fungsi langganan tanpa parameter.
// module deployed at subscription level
module exampleModule 'module.bicep' = {
name: 'deployToSub'
scope: subscription()
}
Untuk menyebarkan langganan yang berbeda, tentukan ID langganan tersebut sebagai parameter dalam fungsi langganan.
param otherSubscriptionID string
// module deployed at subscription level but in a different subscription
module exampleModule 'module.bicep' = {
name: 'deployToSub'
scope: subscription(otherSubscriptionID)
}
Untuk contoh templat, lihat Membuat grup sumber daya dengan Bicep.
Cakupan ke penyewa
Untuk membuat sumber daya di penyewa, tambahkan modul. Gunakan fungsi penyewa untuk mengatur properti scope
.
Pengguna yang menyebarkan templat harus memiliki akses yang diperlukan untuk disebarkan di penyewa.
Contoh berikut mencakup modul yang disebarkan ke penyewa.
// module deployed at tenant level
module exampleModule 'module.bicep' = {
name: 'deployToTenant'
scope: tenant()
}
Alih-alih menggunakan modul, Anda dapat mengatur cakupan ke tenant()
untuk beberapa jenis sumber daya. Contoh berikut menyebarkan grup manajemen di penyewa.
param mgName string = 'mg-${uniqueString(newGuid())}'
// ManagementGroup deployed at tenant
resource managementGroup 'Microsoft.Management/managementGroups@2023-04-01' = {
scope: tenant()
name: mgName
properties: {}
}
output output string = mgName
Untuk informasi selengkapnya, lihat Grup manajemen.
Menyebarkan untuk menargetkan grup sumber daya
Untuk menggunakan sumber daya dalam grup sumber daya target, tentukan sumber daya resources
tersebut di bagian templat. Templat berikut membuat akun penyimpanan di grup sumber daya yang ditentukan dalam operasi penyebaran.
@minLength(3)
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
'Standard_ZRS'
'Premium_LRS'
'Premium_ZRS'
'Standard_GZRS'
'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string = resourceGroup().location
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
Menyebarkan ke beberapa grup sumber daya
Anda dapat menyebarkan ke lebih dari satu grup sumber daya dalam satu file Bicep.
Catatan
Anda dapat menyebarkan ke 800 grup sumber daya dalam satu penyebaran. Biasanya, batasan ini berarti Anda dapat menyebarkan ke satu grup sumber daya yang ditentukan untuk templat induk, dan hingga 799 grup sumber daya dalam penyebaran yang berlapis atau ditautkan. Namun, jika templat induk Anda hanya berisi templat yang ditumpuk atau ditautkan dan tidak menyebarkan sumber daya apa pun, maka Anda dapat menyertakan hingga 800 grup sumber daya dalam penyebaran yang berlapis atau ditautkan.
Contoh berikut menggunakan dua akun penyimpanan. Akun penyimpanan pertama disebarkan ke grup sumber daya yang ditentukan dalam operasi penyebaran. Akun penyimpanan kedua disebarkan ke grup sumber daya yang ditentukan dalam parameter secondResourceGroup
dan secondSubscriptionID
.
@maxLength(11)
param storagePrefix string
param firstStorageLocation string = resourceGroup().location
param secondResourceGroup string
param secondSubscriptionID string = ''
param secondStorageLocation string
var firstStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
var secondStorageName = '${storagePrefix}${uniqueString(secondSubscriptionID, secondResourceGroup)}'
module firstStorageAcct 'storage.bicep' = {
name: 'storageModule1'
params: {
storageLocation: firstStorageLocation
storageName: firstStorageName
}
}
module secondStorageAcct 'storage.bicep' = {
name: 'storageModule2'
scope: resourceGroup(secondSubscriptionID, secondResourceGroup)
params: {
storageLocation: secondStorageLocation
storageName: secondStorageName
}
}
Kedua modul menggunakan file Bicep yang sama bernama storage.bicep.
param storageLocation string
param storageName string
resource storageAcct 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageName
location: storageLocation
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
properties: {}
}
Buat grup sumber daya
Untuk informasi tentang membuat grup sumber daya, lihat Membuat grup sumber daya dengan Bicep.
Langkah berikutnya
Untuk mempelajari tentang cakupan lain, lihat: