Bagikan melalui


Menyebarkan file Bicep dengan Azure PowerShell

Artikel ini menjelaskan cara menggunakan Azure PowerShell dengan file Bicep untuk menyebarkan sumber daya Anda ke Azure. Jika Anda tidak terbiasa dengan penyebaran dan pengelolaan solusi Azure Anda, lihat Apa itu Bicep?

Prasyarat

Anda memerlukan file Bicep untuk penerapan, dan file harus lokal. Anda juga memerlukan Azure PowerShell dan tersambung ke Azure:

Jika Anda tidak memiliki PowerShell yang terinstal, Anda dapat menggunakan Azure Cloud Shell. Untuk informasi selengkapnya, lihat Menyebarkan file Bicep dengan Azure Cloud Shell.

Izin yang diperlukan

Untuk menyebarkan file Bicep atau templat Azure Resource Manager (ARM), Anda memerlukan akses tulis pada sumber daya yang Anda sebarkan dan akses ke semua operasi pada Microsoft.Resources/deployments jenis sumber daya. Misalnya, untuk menyebarkan mesin virtual, Anda memerlukan izin Microsoft.Compute/virtualMachines/write dan Microsoft.Resources/deployments/*. Operasi bagaimana-jika memiliki persyaratan izin yang sama.

Azure CLI versi 2.76.0 atau yang lebih baru dan Azure PowerShell versi 13.4.0 atau yang lebih baru memperkenalkan sakelar ValidationLevel untuk menentukan bagaimana ARM memvalidasi templat Bicep secara menyeluruh selama proses ini. Untuk informasi selengkapnya, lihat Perintah bagaimana-jika

Untuk daftar peran dan izin, lihat Peran bawaan Azure.

Cakupan penyebaran

Anda dapat menargetkan penyebaran Anda ke grup sumber daya, langganan, grup manajemen, atau penyewa. Bergantung pada cakupan penyebaran, Anda menggunakan perintah yang berbeda, dan pengguna yang menyebarkan file Bicep harus memiliki izin yang diperlukan untuk membuat sumber daya untuk setiap cakupan.

Menggunakan file Bicep lokal

Bagian ini menjelaskan bagaimana cara mengimplementasikan file Bicep lokal. Anda dapat menyebarkan file Bicep dari komputer lokal atau file eksternal Anda.

Jika Anda menyebarkan ke grup sumber daya yang tidak ada, buatlah grup sumber daya. Nama grup sumber daya hanya dapat mencakup karakter alfanumerik, titik, garis bawah, tanda hubung, dan tanda kurung. Ini bisa hingga 90 karakter dan tidak dapat berakhir dalam satu titik.

New-AzResourceGroup -Name ExampleGroup -Location "Central US"

Untuk menyebarkan file Bicep lokal, gunakan sakelar -TemplateFile dalam perintah penyebaran:

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleGroup `
  -TemplateFile <path-to-bicep>

Penyebaran dapat memerlukan beberapa menit untuk selesai.

Sebarkan file Bicep secara remote

Azure PowerShell saat ini tidak mendukung penyebaran file Bicep jarak jauh. Anda dapat menggunakan Bicep CLI untuk membangun file Bicep ke templat JSON lalu memuat file JSON ke lokasi jarak jauh. Untuk informasi selengkapnya, lihat Menyebarkan templat jarak jauh.

Parameter

Untuk meneruskan nilai parameter, Anda dapat menggunakan parameter sebaris atau file parameter. File parameter dapat berupa parameter Bicep file atau parameter JSON file.

Parameter sebaris

Untuk meneruskan parameter sebaris, berikan nama parameter dengan perintah New-AzResourceGroupDeployment. Misalnya, untuk meneruskan string dan array ke file Bicep, gunakan:

$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-bicep> `
  -exampleString "inline string" `
  -exampleArray $arrayParam

Anda dapat menggunakan TemplateParameterObject parameter untuk melewati hashtable yang berisi parameter untuk templat:

$params = @{
  exampleString = "inline string"
  exampleArray = "value1", "value2"
}

New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-bicep> `
  -TemplateParameterObject $params

Anda juga bisa mendapatkan konten file dan menyediakan konten tersebut sebagai parameter sebaris:

$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-bicep> `
  -exampleString $(Get-Content -Path c:\MyTemplates\stringcontent.txt -Raw) `
  -exampleArray $arrayParam

Mendapatkan nilai parameter dari file sangat berguna ketika Anda perlu memberikan nilai konfigurasi. Misalnya, Anda dapat memberikan nilai cloud-init untuk mesin virtual Linux.

Jika Anda perlu meneruskan sebuah array objek, buat tabel hash di Azure PowerShell, dan tambahkan ke dalam array. Teruskan array tersebut sebagai parameter selama penyebaran:

$hash1 = @{ Name = "firstSubnet"; AddressPrefix = "10.0.0.0/24"}
$hash2 = @{ Name = "secondSubnet"; AddressPrefix = "10.0.1.0/24"}
$subnetArray = $hash1, $hash2
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-bicep> `
  -exampleArray $subnetArray

File parameter Bicep

Daripada meneruskan parameter sebagai nilai langsung dalam skrip Anda, akan lebih mudah untuk menggunakan file parameter Bicep atau file parameter JSON yang berisi nilai parameter. File parameter Bicep harus berupa file lokal, sementara file templat JSON dapat ditemukan di suatu tempat secara online. Untuk informasi selengkapnya tentang file parameter, lihat Membuat file parameter untuk penyebaran Bicep.

Anda dapat menggunakan file parameter Bicep untuk menyebarkan file Bicep dengan Azure PowerShell versi 10.4.0 atau yang lebih baru dan Bicep CLI versi 0.22.X atau yang lebih baru. Dengan menggunakan perintah using di dalam file parameter Bicep, Anda tidak perlu menyertakan sakelar -TemplateFile saat menentukan file parameter Bicep untuk sakelar -TemplateParameterFile.

Contoh berikut menunjukkan file parameter bernama storage.bicepparam. File berada di direktori yang sama tempat perintah berjalan:

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateParameterFile storage.bicepparam

File parameter JSON

File parameter JSON dapat lokal atau file eksternal dengan URI yang dapat diakses.

Untuk meneruskan file parameter lokal, gunakan opsi TemplateParameterFile dengan file parameter JSON.

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\BicepFiles\storage.bicep `
  -TemplateParameterFile c:\BicepFiles\storage.parameters.json

Untuk meneruskan file parameter eksternal, gunakan TemplateParameterUri parameter :

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\BicepFiles\storage.bicep `
  -TemplateParameterUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.parameters.json

TemplateParameterUri Karena parameter hanya mendukung file parameter JSON, parameter tersebut tidak mendukung .bicepparam file.

Anda dapat menggunakan parameter sebaris dan file parameter lokasi dalam operasi penyebaran yang sama. Untuk informasi selengkapnya, lihat Prioritas parameter.

Pratinjau perubahan

Sebelum menyebarkan file Bicep Anda, Anda dapat melakukan pratinjau pada perubahan yang akan dilakukan file Bicep ke lingkungan Anda. Gunakan operasi what-if untuk memverifikasi bahwa file Bicep membuat perubahan yang Anda harapkan. Skenario hipotetis juga memvalidasi file Bicep dari kesalahan.

Menyebarkan spesifikasi templat

Azure PowerShell saat ini tidak menyediakan file Bicep untuk membantu membuat spesifikasi templat. Namun, Anda dapat membuat file Bicep dengan sumber daya Microsoft.Resources/templateSpecs untuk menyebarkan spesifikasi templat. Sampel Buat spesifikasi templat memperlihatkan cara membuat spesifikasi templat dalam file Bicep. Anda juga dapat membangun file Bicep Anda ke JSON dengan menggunakan Bicep CLI dan kemudian templat JSON untuk membuat spesifikasi templat.

Nama penyebaran

Saat menyebarkan file Bicep, Anda dapat memberi nama penyebaran. Nama ini dapat membantu Anda mendapatkan kembali penyebaran dari riwayat penyebaran. Jika Anda tidak memberikan nama untuk penyebaran, maka namanya akan menjadi nama file Bicep. Misalnya, jika Anda menyebarkan file Bicep bernama main.bicep dan tidak menentukan nama penyebaran, penyebaran diberi nama main.

Setiap kali Anda menjalankan penyebaran, sebuah entri ditambahkan ke dalam riwayat penyebaran grup sumber daya dengan menggunakan nama penyebaran. Jika Anda menjalankan penyebaran lain dan memberinya nama yang sama, entri sebelumnya diganti dengan penyebaran saat ini. Jika Anda ingin mempertahankan entri unik dalam riwayat penyebaran, berikan nama yang unik pada setiap penyebaran.

Untuk membuat nama unik, Anda dapat menetapkan angka acak:

$suffix = Get-Random -Maximum 1000
$deploymentName = "ExampleDeployment" + $suffix

Atau, tambahkan nilai tanggal:

$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="ExampleDeployment"+"$today"

Jika Anda menjalankan penyebaran bersamaan ke grup sumber daya yang sama dengan nama penyebaran yang sama, hanya penyebaran terakhir yang diselesaikan. Setiap penggelaran dengan nama yang sama yang belum selesai akan digantikan oleh penggelaran terbaru. Misalnya, jika Anda menjalankan penyebaran bernama newStorage yang menyebarkan akun penyimpanan bernama storage1 dan menjalankan penyebaran lain bernama newStorage yang menyebarkan akun penyimpanan bernama storage2 secara bersamaan, Anda hanya menyebarkan satu akun penyimpanan. Akun penyimpanan yang dihasilkan diberi nama storage2.

Namun, jika Anda menjalankan penyebaran bernama newStorage yang menyebarkan akun penyimpanan bernama storage1 dan segera menjalankan penyebaran lain bernama newStorage yang menyebarkan akun penyimpanan bernama storage2 setelah penyebaran pertama selesai, maka Anda memiliki dua akun penyimpanan. Satu bernama storage1, dan yang lain bernama storage2. Tapi, Anda hanya punya satu entri dalam riwayat penyebaran.

Saat menentukan nama unik untuk setiap penyebaran, Anda dapat menjalankannya secara bersamaan tanpa konflik. Jika Anda menjalankan penyebaran bernama newStorage1 yang menyebarkan akun penyimpanan bernama storage1 dan menjalankan penyebaran lain bernama newStorage2 yang menyebarkan akun penyimpanan bernama storage2 pada saat yang sama, maka Anda memiliki dua akun penyimpanan dan dua entri dalam riwayat penyebaran.

Untuk menghindari konflik dengan penyebaran yang berlangsung bersamaan dan untuk memastikan entri unik dalam riwayat penyebaran, berikan nama unik pada setiap penyebaran.

Langkah berikutnya

Untuk mempelajari cara menentukan parameter dalam file Anda, lihat Memahami struktur dan sintaks file Bicep.