Bicep: IaC Azure Moden
Pelajari sintaks ringkas Bicep sebagai abstraksi ditaip kukuh di atas JSON ARM, tukarkan templat ARM sedia ada kepada Bicep, dan sebarkannya dengan Azure CLI.
Bicep: IaC Azure Moden ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah Bicep dan Mengapa Menggunakannya?
Bicep ialah bahasa khusus domain (DSL) yang dibangunkan oleh Microsoft sebagai alternatif yang ditaip kuat dan ringkas kepada templat JSON ARM. Bicep dikompilkan kepada JSON ARM standard, jadi ia menggunakan enjin penggunaan ARM yang sama dan menyokong semua jenis sumber Azure sejak hari pertama. Bicep menghapuskan sebahagian besar kod berlebihan yang diperlukan oleh JSON mentah serta menyediakan keselamatan jenis dan sokongan IntelliSense yang lebih baik.
Perbandingan Sintaks Bicep dengan JSON ARM
Akaun Storage yang sama, yang memerlukan kira-kira 25 baris JSON dalam templat ARM, hanya memerlukan kira-kira 8 baris dalam Bicep. Bicep menghapuskan '$schema', contentVersion, pembungkus tatasusunan resources dan sintaks ungkapan yang panjang. Nama serta jenis sifat kekal sama kerana Bicep ialah lapisan abstraksi langsung di atas JSON ARM — tiada perbezaan masa jalan.
// Bicep: deploy a storage account
param storageAccountName string
param location string = resourceGroup().location
param sku string = 'Standard_LRS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: storageAccountName
location: location
sku: {
name: sku
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
minimumTlsVersion: 'TLS1_2'
}
}Parameter dan Penghias dalam Bicep
Parameter Bicep menggunakan sintaks ringkas param name type = defaultValue. Anda boleh menggunakan penghias (diawali dengan @) tepat di atas parameter untuk menambah kekangan seperti @minLength(), @maxLength(), @allowed() dan @description(). Penghias @secure() menandakan parameter sebagai sensitif, setara dengan secureString dalam JSON ARM.
@description('Globally unique name for the storage account')
@minLength(3)
@maxLength(24)
param storageAccountName string
@allowed(['Standard_LRS', 'Standard_GRS', 'Premium_LRS'])
param sku string = 'Standard_LRS'
@secure()
param adminPassword stringPemboleh Ubah dan Ungkapan dalam Bicep
Pemboleh ubah Bicep diisytiharkan dengan kata kunci var dan boleh mengandungi sebarang ungkapan, termasuk interpolasi rentetan menggunakan sintaks '${value}'. Interpolasi rentetan ialah salah satu penambahbaikan yang paling mudah dibaca berbanding JSON ARM — tiada lagi panggilan fungsi concat(). Bicep juga menyokong ungkapan bersyarat menggunakan operator ternari condition ? trueValue : falseValue.
param environment string = 'dev'
param baseName string = 'myapp'
var uniqueSuffix = uniqueString(resourceGroup().id)
var storageAccountName = '${baseName}${environment}${uniqueSuffix}'
var isProd = environment == 'prod'
var skuName = isProd ? 'Standard_GRS' : 'Standard_LRS'Pengisytiharan Sumber dan Nama Simbolik
Dalam Bicep, setiap sumber mendapat nama simbolik — pengecam yang digunakan untuk merujuk kepadanya dalam templat. Nama simbolik tidak sama dengan nama Azure sumber tersebut. Gunakan nama simbolik untuk mengakses sifat sumber dan mewujudkan kebergantungan tersirat dengan merujuk satu sumber dalam sumber yang lain, sekali gus menghapuskan keperluan untuk tatasusunan dependsOn yang jelas.
resource vnet 'Microsoft.Network/virtualNetworks@2023-05-01' = {
name: 'myVNet'
location: location
properties: {
addressSpace: { addressPrefixes: ['10.0.0.0/16'] }
}
}
// Implicit dependency via symbolic name reference
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2023-05-01' = {
parent: vnet // Bicep knows to create vnet first
name: 'mySubnet'
properties: {
addressPrefix: '10.0.1.0/24'
}
}Output dalam Bicep
Output Bicep diisytiharkan menggunakan kata kunci output, diikuti nama, jenis dan nilai output. Anda boleh merujuk sifat resource yang telah digunakan dengan menggunakan nama simbolik dan tatatanda titik, yang jauh lebih mudah dibaca berbanding fungsi reference() ARM. Output penting untuk menghantar nilai antara panggilan modul Bicep.
output storageAccountName string = storageAccount.name
output blobEndpoint string = storageAccount.properties.primaryEndpoints.blob
output storageAccountId string = storageAccount.idModul Bicep
Modul Bicep ialah setara dengan templat terpaut dalam JSON ARM, yang membolehkan anda memecahkan infrastruktur kepada komponen yang boleh digunakan semula. Modul hanyalah satu lagi .bicep file. Anda merujuknya menggunakan kata kunci module, menghantar parameter dan menggunakan outputnya. Modul juga boleh diterbitkan ke dan digunakan daripada Azure Container Registry untuk penggunaan semula seluruh pasukan.
// main.bicep — consuming a storage module
module storage './modules/storage.bicep' = {
name: 'storageDeploy'
params: {
storageAccountName: 'myuniquestorage'
location: location
sku: 'Standard_LRS'
}
}
// Reference module output in parent template
output blobUri string = storage.outputs.blobEndpointMenukar Templat ARM kepada Bicep
Jika anda sudah mempunyai templat JSON ARM sedia ada, Bicep CLI boleh menyahkompilnya kepada Bicep menggunakan bicep decompile. Hasilnya mungkin memerlukan sedikit pengemasan secara manual, tetapi ia memberikan titik permulaan yang sangat baik. Microsoft juga menyediakan ruang uji dalam talian di aka.ms/bicepdemo, tempat anda boleh menampal JSON ARM dan melihat Bicep yang setara dalam masa nyata.
# Install the Bicep CLI (or use it via Azure CLI)
az bicep install
az bicep upgrade
# Decompile existing ARM JSON to Bicep
az bicep decompile --file azuredeploy.json
# Produces azuredeploy.bicep in the same directory
# Compile Bicep to ARM JSON (for inspection)
az bicep build --file main.bicepMenggunakan Bicep dengan Azure CLI
Azure CLI menyokong Bicep files secara langsung — anda tidak perlu mengkompilnya secara manual kepada JSON ARM sebelum menggunakannya. Hantar laluan .bicep file kepada az deployment group create dengan bendera --template-file, dan CLI akan mengkompilnya secara telus. Subperintah validate dan what-if yang sama berfungsi dengan Bicep files sama seperti dengan JSON ARM.
# Deploy a Bicep file directly
az deployment group create \
--resource-group MyRG \
--template-file main.bicep \
--parameters storageAccountName=myprodstore environment=prod
# What-if preview with Bicep
az deployment group what-if \
--resource-group MyRG \
--template-file main.bicep \
--parameters storageAccountName=myprodstore environment=prodGelung dan Syarat dalam Bicep
Bicep menyokong gelung resource menggunakan sintaks for ... in untuk mencipta berbilang tika resource daripada parameter tatasusunan, sekali gus menghapuskan penduaan melalui salin dan tampal. Kata kunci if membolehkan penggunaan resource bersyarat — sertakan resource hanya apabila syarat tertentu adalah benar. Kedua-dua ciri ini masing-masing dikompilkan menjadi binaan copy dan condition ARM.
// Loop: create multiple storage accounts
param storageNames array = ['alpha', 'beta', 'gamma']
resource stores 'Microsoft.Storage/storageAccounts@2023-01-01' = [for name in storageNames: {
name: '${name}${uniqueString(resourceGroup().id)}'
location: location
sku: { name: 'Standard_LRS' }
kind: 'StorageV2'
}]
// Condition: only deploy in prod
param deployKeyVault bool = false
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = if (deployKeyVault) {
name: 'myKeyVault'
location: location
properties: { sku: { family: 'A', name: 'standard' }, tenantId: subscription().tenantId, accessPolicies: [] }
}Alat Bicep dan Linting
Sambungan Bicep untuk Visual Studio Code menyediakan IntelliSense yang lengkap, pemeriksaan jenis dan penyerlahan error sebaris semasa anda menaip. Bicep CLI menyertakan linter yang memeriksa pelanggaran amalan terbaik seperti parameter yang tidak digunakan, keterangan yang tiada dan versi API yang salah. Jalankan az bicep lint --file main.bicep dalam pipeline CI anda untuk mengesan isu sebelum penggunaan.
# Run the Bicep linter
az bicep lint --file main.bicep
# Format a Bicep file
az bicep format --file main.bicep
# Generate resource type documentation
az bicep generate-params --file main.bicep --output-format jsonSemakan Pantas
Uji pemahaman anda tentang konsep Microsoft Azure Fundamentals (AZ-900) daripada lesson ini.
Rumusan Lesson
Dalam lesson ini, anda telah mempelajari bahawa: Bicep ialah abstraksi ringkas dan ditaip kukuh di atas JSON ARM yang dikompilkan kepada templat ARM standard, modul dan gelung membolehkan kod infrastruktur yang boleh digunakan semula dan DRY, serta Azure CLI menggunakan Bicep files secara langsung dengan menyokong aliran kerja validate/what-if/deploy yang sama. Seterusnya, kita akan meneroka Terraform pada Azure.
Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 150
- Pelajaran
- 600
Soalan Lazim
Adakah pelajaran “Bicep: IaC Azure Moden” percuma?
Ya — teks penuh “Bicep: IaC Azure Moden” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Bicep: IaC Azure Moden”?
Pelajari sintaks ringkas Bicep sebagai abstraksi ditaip kukuh di atas JSON ARM, tukarkan templat ARM sedia ada kepada Bicep, dan sebarkannya dengan Azure CLI. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Bicep: IaC Azure Moden” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Cara Azure Resource Manager Berfungsi
- Menulis Templat ARM
- Bicep: IaC Azure Moden
- Terraform pada Azure