Bicep: IaC Azure Modern
Pelajari sintaks ringkas Bicep sebagai abstraksi bertipe kuat di atas JSON ARM, ubah templat ARM yang sudah ada menjadi Bicep, lalu terapkan dengan Azure CLI.
Bicep: IaC Azure Modern adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa Itu Bicep dan Mengapa Menggunakannya?
Bicep adalah bahasa khusus domain (DSL) yang dikembangkan oleh Microsoft sebagai alternatif yang ringkas dan bertipe kuat untuk templat JSON ARM. Bicep dikompilasi menjadi JSON ARM standar, sehingga menggunakan mesin penerapan ARM yang sama dan sejak hari pertama mendukung semua jenis sumber daya Azure. Bicep menghilangkan sebagian besar kode tambahan yang diperlukan oleh JSON mentah serta menyediakan keamanan tipe dan dukungan IntelliSense yang lebih baik.
Perbandingan Sintaks Bicep dan JSON ARM
Akun penyimpanan yang sama, yang memerlukan sekitar 25 baris JSON dalam templat ARM, hanya memerlukan sekitar 8 baris dalam Bicep. Bicep menghilangkan '$schema', contentVersion, pembungkus larik resources, dan sintaks ekspresi yang panjang. Nama serta jenis properti tetap sama karena Bicep merupakan lapisan abstraksi langsung di atas JSON ARM — tidak ada perbedaan saat runtime.
// 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 Dekorator dalam Bicep
Parameter Bicep menggunakan sintaks ringkas param name type = defaultValue. Anda dapat menerapkan dekorator (diawali dengan @) tepat di atas parameter untuk menambahkan batasan seperti @minLength(), @maxLength(), @allowed(), dan @description(). Dekorator @secure() menandai 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 stringVariabel dan Ekspresi dalam Bicep
Variabel Bicep dideklarasikan dengan kata kunci var dan dapat berisi ekspresi apa pun, termasuk interpolasi string menggunakan sintaks '${value}'. Interpolasi string merupakan salah satu peningkatan yang paling mudah dibaca dibandingkan JSON ARM — tidak ada lagi pemanggilan fungsi concat(). Bicep juga mendukung ekspresi kondisional menggunakan operator ternary 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'Deklarasi Sumber Daya dan Nama Simbolis
Dalam Bicep, setiap sumber daya mendapatkan nama simbolis — sebuah pengenal yang digunakan untuk merujuknya di dalam templat. Nama simbolis tidak sama dengan nama Azure sumber daya tersebut. Gunakan nama simbolis untuk mengakses properti sumber daya dan membuat dependensi implisit dengan merujuk satu sumber daya di dalam sumber daya lain, sehingga tidak perlu menggunakan larik dependsOn secara eksplisit.
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 di Bicep
Output Bicep dideklarasikan dengan kata kunci output, diikuti nama output, tipe, dan nilainya. Anda dapat merujuk properti resource yang telah di-Deploy menggunakan nama simbolis dan notasi titik, yang jauh lebih mudah dibaca daripada fungsi reference() milik ARM. Output sangat penting untuk meneruskan nilai antar pemanggilan modul Bicep.
output storageAccountName string = storageAccount.name
output blobEndpoint string = storageAccount.properties.primaryEndpoints.blob
output storageAccountId string = storageAccount.idModul Bicep
Modul Bicep setara dengan templat tertaut dalam JSON ARM, sehingga Anda dapat memecah infrastruktur menjadi komponen yang dapat digunakan kembali. Modul hanyalah .bicep file lainnya. Anda merujuknya menggunakan kata kunci module, meneruskan parameter, dan menggunakan output-nya. Modul juga dapat dipublikasikan ke dan digunakan dari Azure Container Registry untuk digunakan kembali oleh seluruh tim.
// 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.blobEndpointMengonversi Templat ARM ke Bicep
Jika Anda sudah memiliki templat JSON ARM, Bicep CLI dapat melakukan dekompilasi menjadi Bicep menggunakan bicep decompile. Hasilnya mungkin memerlukan sedikit pembersihan secara manual, tetapi memberikan titik awal yang sangat baik. Microsoft juga menyediakan playground daring di aka.ms/bicepdemo. Anda dapat menempelkan JSON ARM di sana dan melihat padanan Bicep secara langsung.
# 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.bicepMen-Deploy Bicep dengan Azure CLI
Azure CLI mendukung file Bicep secara langsung — Anda tidak perlu melakukan kompilasi manual ke JSON ARM sebelum melakukan deployment. Teruskan jalur .bicep file ke az deployment group create dengan flag --template-file, dan CLI akan mengompilasinya secara transparan. Subperintah validate dan what-if yang sama juga berfungsi pada file Bicep, persis seperti pada 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=prodPerulangan dan Kondisi di Bicep
Bicep mendukung perulangan resource menggunakan sintaks for ... in untuk membuat beberapa instans resource dari parameter array, sehingga menghilangkan duplikasi akibat salin-tempel. Kata kunci if memungkinkan deployment resource bersyarat — resource hanya disertakan jika kondisi tertentu bernilai benar. Kedua fitur ini masing-masing dikompilasi menjadi konstruksi copy dan condition milik 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: [] }
}Peralatan dan Linting Bicep
Ekstensi Bicep untuk Visual Studio Code menyediakan IntelliSense yang lengkap, pemeriksaan tipe, dan penyorotan error secara langsung saat Anda mengetik. Bicep CLI menyertakan linter yang memeriksa pelanggaran praktik terbaik, seperti parameter yang tidak digunakan, deskripsi yang tidak ada, dan versi API yang salah. Jalankan az bicep lint --file main.bicep dalam pipeline CI Anda untuk menemukan masalah sebelum deployment.
# 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 jsonPemeriksaan Singkat
Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari lesson ini.
Ringkasan Lesson
Dalam lesson ini Anda telah mempelajari bahwa Bicep adalah abstraksi ringkas dengan tipe kuat di atas JSON ARM yang dikompilasi menjadi templat ARM standar, modul dan perulangan memungkinkan kode infrastruktur yang dapat digunakan kembali dan DRY, serta Azure CLI men-Deploy file Bicep secara langsung dengan mendukung alur kerja validate/what-if/deploy yang sama. Selanjutnya, kita akan membahas Terraform di Azure.
Belajar Cloud & IT Cert Prep dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 150
- Pelajaran
- 600
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Bicep: IaC Azure Modern” gratis?
Ya — teks lengkap “Bicep: IaC Azure Modern” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Bicep: IaC Azure Modern”?
Pelajari sintaks ringkas Bicep sebagai abstraksi bertipe kuat di atas JSON ARM, ubah templat ARM yang sudah ada menjadi Bicep, lalu terapkan dengan Azure CLI. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Bicep: IaC Azure Modern” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Cara Kerja Azure Resource Manager
- Menulis Templat ARM
- Bicep: IaC Azure Modern
- Terraform di Azure