Latihan - Menambahkan parameter dan dekorator
Catatan
Saat Anda pertama kali mengaktifkan kotak pasir dan menerima persyaratan, akun Microsoft Anda dikaitkan dengan direktori Azure baru bernama Microsoft Learn Sandbox. Anda juga ditambahkan ke langganan khusus bernama Langganan Concierge.
Sebagai bagian dari migrasi aplikasi SDM, Anda membuat templat Bicep untuk menyebarkan sumber daya Azure. Dalam latihan ini, Anda akan membuat paket Azure App Service dan aplikasi App Service. Anda akan menerapkan dekorator ke setiap parameter untuk memastikan parameter tersebut akan selalu berisi nilai yang Anda harapkan.
Selama proses, Anda akan melakukan tugas-tugas berikut:
- Membuat file Bicep yang menyertakan parameter dan variabel.
- Menambahkan dekorator ke parameter.
- Menguji penyebaran untuk memastikan templat valid.
Latihan ini menggunakan ekstensi Bicep untuk Visual Studio Code. Pastikan untuk menginstal ekstensi ini di Visual Studio Code.
Membuat templat Bicep dengan parameter
Buka Visual Studio Code.
Buat file baru yang disebut main.bicep.
Simpan file kosong sehingga Visual Studio Code dapat memuat alat Bicep.
Anda dapat memilih File>Simpan Sebagai atau pilih Ctrl+S untuk Windows (⌘+S untuk macOS). Pastikan Anda mengingat di mana Anda menyimpan file tersebut. Misalnya, Anda mungkin ingin membuat folder skrip untuk menyimpan file-nya.
Tambahkan konten berikut ke dalam file. Anda akan segera menyebarkan templat. Masukkan konten Anda sendiri alih-alih menyalin dan menempelkan sehingga Anda dapat melihat bagaimana peralatan membantu Anda menulis file Bicep Anda.
param environmentName string = 'dev' param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}' param appServicePlanInstanceCount int = 1 param appServicePlanSku object = { name: 'F1' tier: 'Free' } param location string = 'eastus' var appServicePlanName = '${environmentName}-${solutionName}-plan' var appServiceAppName = '${environmentName}-${solutionName}-app'
Anda membuat beberapa parameter di sini, dan parameter menggunakan campuran jenis. Anda mendefinisikan nilai default untuk setiap parameter. Beberapa nilai default termasuk interpolasi string dan fungsi
uniqueString()
.Tip
Fungsi
uniqueString()
ini berguna untuk membuat nama sumber daya yang unik secara global. Fungsi ini mengembalikan string yang sama pada setiap penyebaran ke grup sumber daya yang sama, tetapi berbeda saat Anda menyebarkan ke grup sumber daya atau langganan yang berbeda.Anda juga mendefinisikan variabel yang menyusun nama paket Azure App Service dan aplikasi App Service. Nilainya mencakup beberapa parameter yang Anda tentukan. Nilai parameter dapat ditimpa oleh pengguna yang menjalankan penyebaran, tetapi nilai variabel tidak dapat ditimpa.
Tip
Anda menetapkan bahwa parameter
location
harus diatur kewestus3
. Biasanya, Anda akan membuat sumber daya di lokasi yang sama dengan grup sumber daya menggunakan propertiresourceGroup().location
. Namun saat Anda bekerja dengan kotak pasir Microsoft Learn, Anda perlu menggunakan wilayah Azure tertentu yang tidak cocok dengan lokasi grup sumber daya.Dalam file main.bicep di Visual Studio Code, tambahkan kode berikut ke bagian bawah file:
resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: { name: appServicePlanSku.name tier: appServicePlanSku.tier capacity: appServicePlanInstanceCount } } resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true } }
Perhatikan bahwa sumber daya menggunakan nilai parameter yang Anda tentukan.
Simpan perubahan pada file.
Menambahkan deskripsi parameter
Dalam file main.bicep di Visual Studio Code, tambahkan dekorator
@description
tepat di atas setiap parameter yang Anda buat di tugas sebelumnya. Parameter akan terlihat seperti contoh ini:@description('The name of the environment. This must be dev, test, or prod.') param environmentName string = 'dev' @description('The unique name of the solution. This is used to ensure that resource names are unique.') param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}' @description('The number of App Service plan instances.') param appServicePlanInstanceCount int = 1 @description('The name and tier of the App Service plan SKU.') param appServicePlanSku object = { name: 'F1' tier: 'Free' } @description('The Azure region into which the resources should be deployed.') param location string = 'eastus'
Simpan perubahan pada file.
Membatasi nilai input
Perusahaan mainan Anda akan menyebarkan aplikasi SDM ke tiga lingkungan: dev
, , test
dan prod
. Anda akan membatasi environmentName
parameter untuk hanya mengizinkan ketiga nilai tersebut.
Dalam file main.bicep di Visual Studio Code, temukan parameter
environmentName
. Masukkan dekorator@allowed
di bawah dekorator@description
. Setelah selesai, parameter akan terlihat seperti contoh ini:@description('The name of the environment. This must be dev, test, or prod.') @allowed([ 'dev' 'test' 'prod' ]) param environmentName string = 'dev'
Perhatikan bahwa Anda membatasi nilai parameter untuk parameter
environmentName
hanya kedev
,test
, danprod
. Jika lebih banyak lingkungan ditambahkan di masa mendatang, Anda harus memperbarui daftar ini.Simpan perubahan pada file.
Membatasi panjang input
Parameter solutionName
Anda digunakan untuk membuat nama sumber daya. Anda ingin menerapkan panjang minimum 5 karakter dan panjang maksimum 30 karakter.
Dalam file main.bicep di Visual Studio Code, temukan parameter
solutionName
. Tambahkan dekorator@minLength
dan@maxLength
di bawah dekorator@description
. Setelah selesai, parameter akan terlihat seperti contoh ini:@description('The unique name of the solution. This is used to ensure that resource names are unique.') @minLength(5) @maxLength(30) param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
Simpan perubahan pada file.
Membatasi nilai numerik
Selanjutnya, Anda akan memastikan parameter appServicePlanInstanceCount
hanya mengizinkan nilai antara 1 dan 10.
Dalam file main.bicep di Visual Studio Code, temukan parameter
appServicePlanInstanceCount
. Tambahkan dekorator@minValue
dan@maxValue
di bawah dekorator@description
. Setelah selesai, parameter akan terlihat seperti contoh ini:@description('The number of App Service plan instances.') @minValue(1) @maxValue(10) param appServicePlanInstanceCount int = 1
Simpan perubahan pada file.
Memverifikasi file Bicep Anda
Setelah Anda menyelesaikan semua perubahan sebelumnya, file Bicep Anda akan terlihat seperti contoh ini:
@description('The name of the environment. This must be dev, test, or prod.')
@allowed([
'dev'
'test'
'prod'
])
param environmentName string = 'dev'
@description('The unique name of the solution. This is used to ensure that resource names are unique.')
@minLength(5)
@maxLength(30)
param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
@description('The number of App Service plan instances.')
@minValue(1)
@maxValue(10)
param appServicePlanInstanceCount int = 1
@description('The name and tier of the App Service plan SKU.')
param appServicePlanSku object = {
name: 'F1'
tier: 'Free'
}
@description('The Azure region into which the resources should be deployed.')
param location string = 'eastus'
var appServicePlanName = '${environmentName}-${solutionName}-plan'
var appServiceAppName = '${environmentName}-${solutionName}-app'
resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
name: appServicePlanName
location: location
sku: {
name: appServicePlanSku.name
tier: appServicePlanSku.tier
capacity: appServicePlanInstanceCount
}
}
resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
name: appServiceAppName
location: location
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
}
}
Jika tidak, salin contoh atau sesuaikan templat Anda agar sesuai dengan contoh.
Menyebarkan templat Bicep ke Azure
Untuk menyebarkan templat ini ke Azure, Anda harus masuk ke akun Azure Anda dari terminal Visual Studio Code. Pastikan Anda telah menginstal Azure CLI, dan ingatlah untuk masuk dengan akun yang sama dengan yang Anda gunakan untuk mengaktifkan kotak pasir.
Pada menu Terminal, pilih Terminal Baru. Jendela terminal biasanya terbuka di bagian bawah layar Anda.
Jika shell yang ditampilkan di sisi kanan jendela terminal adalah bash, shell yang benar terbuka dan Anda dapat melompat ke bagian berikutnya.
Jika shell selain bash muncul, pilih panah dropdown shell, lalu pilih Git Bash.
Dalam daftar shell terminal, pilih bash.
Di terminal, buka direktori tempat Anda menyimpan template. Misalnya, jika Anda menyimpan template ke folder template, Anda dapat menggunakan perintah ini:
cd templates
Menginstal Bisep
Jalankan perintah berikut untuk memastikan Anda memiliki Bicep versi terbaru:
az bicep install && az bicep upgrade
Masuk ke Azure
Pada terminal Visual Studio Code, masuk ke Azure dengan menjalankan perintah berikut:
az login
Masuk ke akun Azure Anda melalui browser yang terbuka.
Terminal Visual Studio Code menampilkan daftar langganan yang terkait dengan akun ini.
Tetapkan langganan default untuk semua perintah Azure CLI yang Anda jalankan dalam sesi ini.
az account set --subscription "Concierge Subscription"
Catatan
Jika Anda telah menggunakan lebih dari satu kotak pasir baru-baru ini, terminal mungkin menampilkan lebih dari satu instans Langganan Concierge. Jika demikian, gunakan dua langkah berikutnya untuk menetapkan salah satunya sebagai langganan default. Jika perintah sebelumnya berhasil, dan hanya satu Langganan Concierge yang tercantum, lewati dua langkah berikutnya.
Mendapatkan ID Langganan Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Tetapkan langganan default menggunakan ID langganan. Ganti {ID langganan Anda} dengan ID Langganan Concierge terbaru.
az account set --subscription {your subscription ID}
Menetapkan grup sumber daya default
Saat menggunakan Azure CLI, Anda dapat mengatur grup sumber daya default dan menghilangkan parameter dari perintah Azure CLI lainnya dalam latihan ini. Atur default ke grup sumber daya yang dibuat untuk Anda di lingkungan kotak pasir.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Menyebarkan templat ke Azure menggunakan Azure CLI
Jalankan kode berikut dari terminal di Visual Studio Code untuk menyebarkan templat Bicep ke Azure. Anda tidak harus menentukan nilai parameter karena nilai tersebut memiliki nilai default yang ditentukan. Proses ini dapat diselesaikan dalam waktu satu atau dua menit, lalu Anda akan melihat penyebaran yang berhasil.
az deployment group create --template-file main.bicep
Anda akan melihat Running...
di terminal.
Untuk menyebarkan template ini ke Azure, masuk ke akun Azure dari terminal Visual Studio Code. Pastikan Anda telah menginstal Azure PowerShell, dan masuk ke akun yang sama yang mengaktifkan ko.
Pada menu Terminal, pilih Terminal Baru. Jendela terminal biasanya terbuka di bagian bawah layar Anda.
Jika shell yang ditampilkan di sisi kanan jendela terminal adalah powershell atau pwsh, shell yang benar terbuka, dan Anda dapat melompat ke bagian berikutnya.
Jika shell selain powershell atau pwsh muncul, pilih panah dropdown shell, lalu pilih PowerShell.
Dalam daftar shell terminal, pilih powershell atau pwsh.
Di terminal, buka direktori tempat Anda menyimpan template. Misalnya, jika Anda menyimpannya ke folder template, Anda dapat menggunakan perintah ini:
Set-Location -Path templates
Menginstal Bicep CLI
Untuk menggunakan Bicep dari Azure PowerShell, instal Bicep CLI.
Masuk ke Azure menggunakan Azure PowerShell
Di terminal Visual Studio Code, jalankan perintah berikut:
Connect-AzAccount
Browser terbuka sehingga Anda dapat masuk ke akun Azure.
Setelah masuk ke Azure, terminal menampilkan daftar langganan yang terkait dengan akun ini.
Jika Anda telah mengaktifkan kotak pasir, langganan bernama Langganan Concierge akan ditampilkan. Gunakan kotak pasir tersebut untuk latihan yang tersisa.
Tetapkan langganan default untuk semua perintah Azure PowerShell yang dijalankan dalam sesi ini.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Catatan
Jika Anda telah menggunakan lebih dari satu kotak pasir baru-baru ini, terminal mungkin menampilkan lebih dari satu instans Langganan Concierge. Jika demikian, gunakan dua langkah berikutnya untuk menetapkan salah satunya sebagai langganan default. Jika perintah sebelumnya berhasil, dan hanya satu Langganan Concierge yang tercantum, lewati dua langkah berikutnya.
Dapatkan ID langganan. Menjalankan perintah berikut akan mencantumkan langganan Anda dan ID mereka. Cari
Concierge Subscription
, lalu salin ID dari kolom kedua. Ini terlihat seperticf49fbbc-217c-4eb6-9eb5-a6a6c68295a0
.Get-AzSubscription
Ubah langganan aktif Anda menjadi Langganan Concierge. Pastikan untuk mengganti {Your subscription ID} dengan ID yang telah Anda salin.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Menetapkan grup sumber daya default
Anda dapat mengatur grup sumber daya default dan menghilangkan parameter dari perintah Azure PowerShell lainnya dalam latihan ini. Atur default ini ke grup sumber daya yang dibuat untuk Anda di lingkungan kotak pasir.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Menyebarkan templat ke Azure menggunakan PowerShell
Sebarkan templat ke Azure dengan menggunakan perintah Azure PowerShell berikut di terminal. Anda tidak harus menentukan nilai parameter karena nilai tersebut memiliki nilai default yang ditentukan. Proses ini dapat diselesaikan dalam waktu satu atau dua menit, lalu Anda akan melihat penyebaran yang berhasil.
New-AzResourceGroupDeployment -TemplateFile main.bicep
Memverifikasi penyebaran Anda
Buka portal Microsoft Azure dan pastikan Anda berada di langganan kotak pasir:
- Pilih avatar Anda di sudut kanan atas halaman.
- Lalu pilih Beralih direktori. Dalam daftar, pilih direktori Microsoft Learn Sandbox.
Di panel sebelah kiri, pilih Grup sumber daya.
Pilih
[nama grup sumber daya kotak pasir] .Di Gambaran Umum, Anda bisa melihat satu penyebaran telah berhasil.
Pilih 1 Berhasil melihat detail penyebaran.
Pilih penyebaran yang bernama utama untuk melihat sumber daya apa yang disebarkan, lalu pilih Detail penyebaran untuk meluaskannya. Dalam hal ini, ada paket dan aplikasi App Service.
Di menu sebelah kiri, pilih Input.
Perhatikan bahwa parameter dan nilainya dicantumkan.
Biarkan halaman terbuka di browser Anda. Anda akan memeriksa penyebaran lagi.