Mulai cepat: Membuat dan menyebarkan spesifikasi template dengan Bicep

Mulai cepat ini menjelaskan cara membuat dan menyebarkan spesifikasi template dengan file Bicep. Spesifikasi template disebarkan ke grup sumber daya sehingga orang-orang di organisasi Anda dapat menyebarkan sumber daya di Microsoft Azure. Spesifikasi template memungkinkan Anda berbagi template penyebaran tanpa perlu memberi pengguna akses untuk mengubah file Bicep. Contoh spesifikasi template ini menggunakan file Bicep untuk menyebarkan akun penyimpanan.

Saat Anda membuat spesifikasi template, file Bicep diubah menjadi JavaScript Object Notation (JSON). Spesifikasi template menggunakan JSON untuk menyebarkan sumber daya Azure. Saat ini, Anda tidak dapat menggunakan portal Microsoft Azure untuk mengimpor file Bicep dan membuat sumber daya spesifikasi template.

Prasyarat

Membuat file Bicep

Anda membuat spesifikasi template dari file Bicep lokal. Salin contoh berikut dan simpan ke komputer Anda sebagai main.bicep. Contoh menggunakan jalur C:\templates\main.bicep. Anda dapat menggunakan jalur yang berbeda, tetapi Anda harus mengubah perintahnya.

File Bicep berikut digunakan di tab PowerShell dan CLI. Tab File Bicep menggunakan template berbeda yang menggabungkan Bicep dan JSON untuk membuat dan menyebarkan spesifikasi template.

@allowed([
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GRS'
  'Standard_GZRS'
  'Standard_LRS'
  'Standard_RAGRS'
  'Standard_RAGZRS'
  'Standard_ZRS'
])
@description('Storage account type.')
param storageAccountType string = 'Standard_LRS'

@description('Location for all resources.')
param location string = resourceGroup().location

var storageAccountName = 'storage${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

output storageAccountNameOutput string = storageAccount.name

Membuat spesifikasi templat

Spesifikasi template adalah jenis sumber daya bernama Microsoft.Resources/templateSpecs. Untuk membuat spesifikasi template, gunakan Azure CLI, Azure PowerShell, atau file Bicep.

Contoh ini menggunakan nama grup sumber daya templateSpecRG. Anda dapat menggunakan nama yang berbeda, tetapi Anda harus mengubah perintahnya.

  1. Buat grup sumber daya baru untuk memuat spesifikasi templat.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Buat spesifikasi templat dalam grup sumber daya tersebut. Beri spesifikasi template baru nama storageSpec.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "1.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\templates\main.bicep"
    

Menyebarkan spesifikasi templat

Gunakan spesifikasi template untuk menyebarkan akun penyimpanan. Contoh ini menggunakan nama grup sumber daya storageRG. Anda dapat menggunakan nama yang berbeda, tetapi Anda harus mengubah perintahnya.

  1. Buat grup sumber daya untuk memuat akun penyimpanan baru.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Dapatkan ID sumber daya spesifikasi templat.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Terapkan spesifikasi templat.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Anda memberikan parameter persis seperti yang Anda lakukan untuk penyebaran file Bicep. Terapkan ulang spesifikasi template dengan parameter untuk jenis akun penyimpanan.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageAccountType Standard_GRS
    

Memberikan akses

Jika Anda ingin mengizinkan pengguna lain di organisasi Anda menerapkan spesifikasi templat Anda, Anda harus memberi mereka akses baca. Anda dapat menetapkan peran Pembaca ke grup Microsoft Entra untuk grup sumber daya yang berisi spesifikasi templat yang ingin Anda bagikan. Untuk informasi selengkapnya, lihat Tutorial: Memberi akses grup ke sumber daya Azure menggunakan Azure PowerShell.

Memperbarui file Bicep

Setelah spesifikasi template dibuat, Anda memutuskan untuk memperbarui file Bicep. Untuk melanjutkan contoh di tab PowerShell atau CLI, salin contoh dan ganti file main.bicep Anda.

Parameter storageNamePrefix menentukan nilai prefiks untuk nama akun penyimpanan. Variabel storageAccountName menggabungkan prefiks dengan string unik.

@allowed([
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GRS'
  'Standard_GZRS'
  'Standard_LRS'
  'Standard_RAGRS'
  'Standard_RAGZRS'
  'Standard_ZRS'
])
@description('Storage account type.')
param storageAccountType string = 'Standard_LRS'

@description('Location for all resources.')
param location string = resourceGroup().location

@maxLength(11)
@description('The storage account name prefix.')
param storageNamePrefix string = 'storage'

var storageAccountName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

output storageAccountNameOutput string = storageAccount.name

Memperbarui versi spesifikasi templat

Daripada membuat spesifikasi template baru untuk template yang direvisi, tambahkan versi baru bernama 2.0 ke spesifikasi template yang ada. Pengguna dapat memilih untuk menyebarkan salah satu versi.

  1. Buat versi baru dari spesifikasi template.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\templates\main.bicep"
    
  2. Untuk menerapkan versi baru, dapatkan ID sumber daya untuk versi 2.0 tersebut.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Sebarkan versi baru dan gunakan storageNamePrefix guna menentukan prefiks untuk nama akun penyimpanan.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageNamePrefix "demo"
    

Membersihkan sumber daya

Untuk membersihkan sumber daya yang Anda sebarkan dalam mulai cepat ini, hapus kedua grup sumber daya. Grup sumber daya, spesifikasi template, dan akun penyimpanan akan dihapus.

Gunakan Azure PowerShell atau Azure CLI untuk menghapus grup sumber daya.

Remove-AzResourceGroup -Name "templateSpecRG"

Remove-AzResourceGroup -Name "storageRG"
az group delete --name templateSpecRG

az group delete --name storageRG

Langkah berikutnya