Deklarasi sumber daya dalam Bicep
Artikel ini menguraikan sintaks yang Anda gunakan untuk menambahkan sumber daya ke file Bisep Anda. Anda dibatasi hingga 800 sumber daya dalam file Bicep. Untuk informasi selengkapnya, lihat Batas templat.
Menentukan sumber daya
Tambahkan deklarasi sumber daya dengan menggunakan kata kunci resource
. Anda mengatur nama simbolis untuk sumber daya. Nama simbolis tidak sama dengan nama sumber daya. Anda menggunakan nama simbolis untuk mereferensikan sumber daya di bagian lain file Bicep Anda.
@<decorator>(<argument>)
resource <symbolic-name> '<full-type-name>@<api-version>' = {
<resource-properties>
}
Jadi, deklarasi untuk akun penyimpanan dapat dimulai dengan:
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
...
}
Nama simbolis peka huruf besar/kecil. Hanya boleh berisi huruf, angka, dan garis bawah (_
). Tidak boleh dimulai dengan angka. Sumber daya tidak dapat memiliki nama yang sama dengan parameter, variabel, atau modul.
Untuk tipe dan versi sumber daya yang tersedia, lihat Referensi sumber daya Bisep. Bicep tidak mendukung apiProfile
, yang tersedia di templat Azure Resource Manager (templat ARM) JSON. Anda juga dapat menentukan sumber daya penyedia ekstensibilitas Bicep. Untuk informasi selengkapnya, lihat Penyedia Kubernetes ekstensibilitas Bicep.
Untuk menyebarkan sumber daya secara kondisional, guakan sintaksis if
. Untuk mengetahui informasi selengkapnya, lihat Pnyebaran bersyarat dalam Bisep.
resource <symbolic-name> '<full-type-name>@<api-version>' = if (condition) {
<resource-properties>
}
Untuk menyebarkan lebih dari satu instans sumber daya, gunakan for
. Anda dapat menggunakan dekorator batchSize
untuk menentukan apakah instans digunakan secara serial atau paralel. Untuk informasi selengkapnya, lihat loop Iterasi di Bisep.
@batchSize(int) // optional decorator for serial deployment
resource <symbolic-name> '<full-type-name>@<api-version>' = [for <item> in <collection>: {
<properties-to-repeat>
}]
Anda juga dapat menggunakan sintaksis for
pada properti sumber daya untuk membuat array.
resource <symbolic-name> '<full-type-name>@<api-version>' = {
properties: {
<array-property>: [for <item> in <collection>: <value-to-repeat>]
}
}
Menggunakan dekorator
Dekorator ditulis dalam format @expression
dan ditempatkan di atas deklarasi sumber daya. Tabel berikut ini memperlihatkan dekorator yang tersedia untuk sumber daya.
Dekorator | Argumen | Deskripsi |
---|---|---|
batchSize | tidak ada | Siapkan instans untuk disebarkan secara berurutan. |
description | string | Berikan deskripsi untuk sumber daya. |
Dekotaror berada dalam namespace layanan sys. Jika Anda perlu membedakan suatu dekorator dari item lainnya dengan nama yang sama, awali dekorator dengan sys
. Contohnya, jika file Bicep Anda mencakup parameter bernama description
, Anda harus menambahkan namespace layanan sys saat menggunakan dekorator deskripsi.
BatchSize
Anda hanya dapat menerapkan @batchSize()
ke definisi sumber daya atau modul yang menggunakan for
ekspresi.
Secara default, sumber daya disebarkan secara paralel. Saat Anda menambahkan dekorator batchSize(int)
, Anda menerapkan instans secara serial.
@batchSize(3)
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2023-04-01' = [for storageName in storageAccounts: {
...
}]
Untuk informasi selengkapnya, lihat Menyebarkan dalam batch.
Deskripsi
Untuk menambahkan penjelasan, tambahkan deskripsi ke deklarasi sumber daya. Contohnya:
@description('Create a number of storage accounts')
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2023-04-01' = [for storageName in storageAccounts: {
...
}]
Teks berformat markdown dapat digunakan untuk teks deskripsi.
Nama sumber daya
Setiap sumber daya memiliki nama. Saat mengatur nama sumber daya, perhatikan aturan dan batasan untuk nama sumber daya.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
...
}
Biasanya, Anda akan mengatur nama ke parameter sehingga Anda dapat meneruskan nilai yang berbeda selama penyebaran.
@minLength(3)
@maxLength(24)
param storageAccountName string
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
...
}
Lokasi sumber daya
Banyak sumber daya membutuhkan lokasi. Anda dapat menentukan apakah sumber daya memerlukan lokasi baik melalui intellisense atau referensi template. Contoh berikut menambahkan parameter lokasi yang digunakan untuk akun penyimpanan.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: 'eastus'
...
}
Biasanya, Anda akan mengatur lokasi ke parameter sehingga Anda dapat menyebarkan ke lokasi yang berbeda.
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: location
...
}
Jenis sumber daya yang berbeda didukung di lokasi yang berbeda. Untuk mendapatkan lokasi yang didukung untuk layanan Azure, Lihat Produk tersedia menurut wilayah. Untuk mendapatkan lokasi yang didukung untuk jenis sumber daya, gunakan Azure PowerShell atau Azure CLI.
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
| Where-Object ResourceTypeName -eq batchAccounts).Locations
Tag sumber daya
Gunakan untuk menerapkan tag ke sumber daya selama penyebaran. Tag membantu Anda menata sumber daya secara logis. Untuk contoh berbagai cara Anda dapat menentukan tag, lihat tag templat ARM.
Identitas terkelola untuk sumber daya
Beberapa sumber daya mendukung identitas terkelola untuk sumber daya Azure. Sumber daya tersebut memiliki objek identitas pada tingkat akar deklarasi sumber daya.
Anda dapat menggunakan identitas yang ditetapkan sistem atau pengguna.
Contoh berikut menunjukkan cara mengonfigurasi identitas yang ditetapkan sistem untuk kluster Azure Kubernetes Service.
resource aks 'Microsoft.ContainerService/managedClusters@2024-02-01' = {
name: clusterName
location: location
tags: tags
identity: {
type: 'SystemAssigned'
}
Contoh berikutnya menunjukkan cara mengonfigurasi identitas yang ditetapkan pengguna untuk mesin virtual.
param userAssignedIdentity string
resource vm 'Microsoft.Compute/virtualMachines@2024-03-01' = {
name: vmName
location: location
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${userAssignedIdentity}': {}
}
}
Properti spesifik sumber daya
Properti sebelumnya umum untuk sebagian besar jenis sumber daya. Setelah mengatur nilai tersebut, Anda perlu mengatur properti yang spesifik untuk tipe sumber daya yang Anda sebarkan.
Gunakan referensi intellisense atau sumber daya Bicep untuk menentukan properti mana yang tersedia dan mana yang diperlukan. Contoh berikut menetapkan properti yang tersisa untuk akun penyimpanan.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: 'eastus'
sku: {
name: 'Standard_LRS'
tier: 'Standard'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
Langkah berikutnya
- Untuk secara kondisional menyebarkan sumber daya, lihat Penyebaran kondisional dalam Bicep.
- Untuk mereferensikan sumber daya yang ada, lihat Sumber daya yang ada di Bicep.
- Untuk mempelajari cara urutan penyebaran ditentukan, lihat Dependensi sumber daya di Bicep.