Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara menggunakan Azure CLI dengan file Bicep untuk menyebarkan sumber daya Anda ke Azure. Jika Anda tidak terbiasa menyebarkan dan mengelola solusi Azure Anda, lihat Apa itu Bicep?
Prasyarat
Anda memerlukan file Bicep untuk disebarkan, dan file tersebut harus berada di lokal. Anda juga memerlukan Azure CLI dan tersambung ke Azure:
- Instal perintah Azure CLI di komputer lokal Anda. Untuk menyebarkan file Bicep, Anda memerlukan Azure CLI versi 2.20.0 atau yang lebih baru.
-
Gunakan
az loginuntuk menyambungkan ke Azure. Jika Anda memiliki beberapa langganan Azure, Anda mungkin juga perlu menjalankanaz account set.
Contoh-contoh untuk Azure CLI ditulis untuk bash shell. Untuk menjalankan sampel ini di Windows PowerShell atau Command Prompt (cmd), Anda mungkin perlu mengubah elemen skrip.
Jika Anda tidak menginstal Azure CLI, Anda dapat menggunakan Azure Cloud Shell. Untuk informasi selengkapnya, lihat Menyebarkan file Bicep dari 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 andaikan 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.
Untuk menyebarkan ke grup sumber daya, gunakan
az deployment group create:az deployment group create --resource-group <resource-group-name> --template-file <path-to-bicep>Untuk menyebarkan ke dalam langganan, gunakan
az deployment sub create:az deployment sub create --location <location> --template-file <path-to-bicep>Untuk informasi selengkapnya tentang penyebaran di tingkat langganan, lihat Penyebaran langganan dengan file Bicep.
Untuk menyebarkan ke grup manajemen, gunakan
az deployment mg create:az deployment mg create --location <location> --template-file <path-to-bicep>Untuk informasi selengkapnya tentang penyebaran tingkat grup manajemen, lihat Penyebaran grup manajemen dengan file Bicep.
Untuk menyebarkan ke penyewa, gunakan
az deployment tenant create:az deployment tenant create --location <location> --template-file <path-to-bicep>Untuk informasi selengkapnya tentang penyebaran di tingkat penyewa, lihat Penyebaran penyewa dengan file Bicep.
Menyebarkan file Bicep lokal
Anda dapat menyebarkan file Bicep dari komputer lokal atau file eksternal Anda. Bagian ini menjelaskan cara mengimplementasikan file Bicep lokal.
Jika Anda menerapkan ke grup sumber daya yang tidak ada, buatlah grup sumber daya tersebut. 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.
az group create --name ExampleGroup --location "Central US"
Untuk menyebarkan file Bicep lokal, gunakan pengalih --template-file pada perintah penyebaran. Contoh berikut juga menunjukkan cara mengatur nilai parameter:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file <path-to-bicep> \
--parameters storageAccountType=Standard_GRS
Penyebaran dapat memakan waktu beberapa menit untuk selesai. Setelah selesai, Anda akan melihat pesan yang menyertakan hasil berikut:
"provisioningState": "Succeeded",
Terapkan file Bicep jarak jauh
Azure CLI 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 Menggunakan templat jarak jauh.
Parameter
Untuk meneruskan nilai parameter, Anda dapat menggunakan parameter langsung atau file parameter. File parameter dapat berupa parameter Bicep file atau parameter JSON file.
Parameter sejajar
Untuk meneruskan parameter inline, berikan nilai di parameters. Misalnya, untuk meneruskan string dan array ke file Bicep dalam shell Bash, gunakan:
az deployment group create \
--resource-group testgroup \
--template-file <path-to-bicep> \
--parameters exampleString='inline string' exampleArray='["value1", "value2"]'
Jika Anda menggunakan Azure CLI dengan cmd atau PowerShell, luluskan array dalam format: exampleArray="['value1','value2']".
Anda juga bisa mendapatkan konten berkas untuk menyediakannya sebagai parameter sebaris. Awali nama file dengan @:
az deployment group create \
--resource-group testgroup \
--template-file <path-to-bicep> \
--parameters exampleString=@stringContent.txt exampleArray=@arrayContent.json
Mendapatkan nilai parameter dari file sangat berguna ketika Anda perlu memberikan nilai konfigurasi. Misalnya, Anda dapat memberikan nilai cloud-init untuk mesin virtual Linux.
Format arrayContent.json adalah:
[
"value1",
"value2"
]
Untuk meneruskan objek, gunakan JSON (saat mengatur tag, misalnya). File Bicep Anda mungkin menyertakan parameter seperti ini:
"resourceTags": {
"type": "object",
"defaultValue": {
"Cost Center": "IT Department"
}
}
Seperti yang ditunjukkan dalam skrip Bash berikut, Anda juga dapat meneruskan string JSON untuk mengatur parameter. Gunakan tanda kutip ganda di sekitar JSON yang ingin Anda teruskan ke objek:
tags='{"Owner":"Contoso","Cost Center":"2345-324"}'
az deployment group create --name addstorage --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags="$tags"
Jika Anda menggunakan Azure CLI dengan cmd atau PowerShell, teruskan objek dalam format berikut:
$tags="{'Owner':'Contoso','Cost Center':'2345-324'}"
az deployment group create --name addstorage --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags=$tags
Anda dapat menggunakan variabel untuk berisi nilai parameter. Atur variabel ke semua nilai parameter dalam skrip Bash Anda, dan tambahkan ke perintah penyebaran:
params="prefix=start suffix=end"
az deployment group create \
--resource-group testgroup \
--template-file <path-to-bicep> \
--parameters $params
Namun, jika Anda menggunakan Azure CLI dengan cmd atau PowerShell, atur variabel ke string JSON. Hindari tanda kutip: $params = '{ \"prefix\": {\"value\":\"start\"}, \"suffix\": {\"value\":\"end\"} }'.
Evaluasi parameter mengikuti urutan berurutan, yang berarti bahwa jika nilai ditetapkan beberapa kali, maka hanya nilai terakhir yang ditetapkan yang digunakan. Untuk menetapkan parameter dengan benar, disarankan agar Anda memberikan file parameter anda pada awalnya dan kemudian menggunakan sintaks KEY=VALUE untuk secara selektif mengambil alih parameter tertentu. Jika Anda menyediakan .bicepparam file parameter, Anda hanya dapat menggunakan argumen ini sekali.
File parameter Bicep
Daripada menggunakan nilai parameter secara langsung dalam skrip Anda, Anda mungkin merasa lebih mudah untuk menggunakan file parameter Bicep atau file parameter JSON yang berisi nilai parameter. File parameter harus berupa file lokal karena Azure CLI tidak mendukung file parameter eksternal. Untuk informasi selengkapnya tentang file parameter, lihat Cara membuat file parameter untuk penyebaran Bicep.
Anda dapat menggunakan file parameter Bicep untuk menyebarkan file Bicep dengan Azure CLI versi 2.53.0 atau yang lebih baru dan Bicep CLI versi 0.22.X atau yang lebih baru. Dengan pernyataan using dalam file parameter Bicep, Anda tidak perlu memberikan sakelar --template-file saat menentukan file parameter Bicep untuk sakelar --parameters. Termasuk sakelar --template-file akan menampilkan kesalahan berikut: "Hanya file .bicep yang diizinkan dengan file .bicepparam."
Contoh berikut menunjukkan file parameter bernama storage.bicepparam. File berada di direktori yang sama tempat perintah berjalan:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
File parameter JSON
Contoh berikut menunjukkan file parameter bernama storage.parameters.json. File berada di direktori yang sama tempat perintah berjalan:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.bicep \
--parameters '@storage.parameters.json'
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. Simulasi skenario juga memvalidasi file Bicep untuk kesalahan.
Menyebarkan spesifikasi templat
Saat ini, Azure CLI 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.
Penamaan penyebaran
Saat menyebarkan Bicep file, Anda bisa memberi sebuah nama untuk penyebaran tersebut. Nama ini dapat membantu Anda mengakses penyebaran dari riwayat penyebaran. Jika Anda tidak memberikan nama untuk penyebaran, maka nama tersebut 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 sebuah penyebaran, sebuah entri dengan nama penyebaran ditambahkan ke dalam riwayat penyebaran grup sumber daya. Jika Anda menjalankan deployment lain dan memberinya nama yang sama, entri sebelumnya akan digantikan dengan deployment 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:
deploymentName='ExampleDeployment'$RANDOM
Atau, tambahkan nilai tanggal:
deploymentName='ExampleDeployment'$(date +"%d-%b-%Y")
Jika Anda menjalankan penyebaran bersamaan ke grup sumber daya yang sama dengan nama penyebaran yang sama, hanya penyebaran terakhir yang diselesaikan. Setiap penyebaran dengan nama yang sama yang belum selesai akan digantikan oleh penyebaran yang terakhir. 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. Namun, Anda hanya memiliki satu entri dalam catatan 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 bersamaan dan memastikan entri unik dalam riwayat penyebaran, berikan setiap penyebaran nama yang unik.
Langkah berikutnya
Untuk memahami cara menentukan parameter dalam file Anda, lihat Struktur dan sintaks file Bicep.