Latihan - Menambahkan parameter dan dekorator

Selesai

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

  1. Buka Visual Studio Code.

  2. Buat file baru yang disebut main.bicep.

  3. 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.

  4. 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 ke westus3. Biasanya, Anda akan membuat sumber daya di lokasi yang sama dengan grup sumber daya menggunakan properti resourceGroup().location. Namun saat Anda bekerja dengan kotak pasir Microsoft Learn, Anda perlu menggunakan wilayah Azure tertentu yang tidak cocok dengan lokasi grup sumber daya.

  5. 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.

  6. Simpan perubahan pada file.

Menambahkan deskripsi parameter

  1. 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'
    
  2. Simpan perubahan pada file.

Membatasi nilai input

Perusahaan mainan Anda akan menyebarkan aplikasi SDM ke tiga lingkungan: dev, , testdan prod. Anda akan membatasi environmentName parameter untuk hanya mengizinkan ketiga nilai tersebut.

  1. 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 ke dev, test, dan prod. Jika lebih banyak lingkungan ditambahkan di masa mendatang, Anda harus memperbarui daftar ini.

  2. 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.

  1. 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)}'
    
  2. Simpan perubahan pada file.

Membatasi nilai numerik

Selanjutnya, Anda akan memastikan parameter appServicePlanInstanceCount hanya mengizinkan nilai antara 1 dan 10.

  1. 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
    
  2. 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.

  1. Pada menu Terminal, pilih Terminal Baru. Jendela terminal biasanya terbuka di bagian bawah layar Anda.

  2. Jika shell yang ditampilkan di sisi kanan jendela terminal adalah bash, shell yang benar terbuka dan Anda dapat melompat ke bagian berikutnya.

    Screenshot of the Visual Studio Code terminal window, with the bash option shown.

  3. Jika shell selain bash muncul, pilih panah dropdown shell, lalu pilih Git Bash.

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and Git Bash Default selected.

  4. Dalam daftar shell terminal, pilih bash.

    Screenshot of the Visual Studio Code terminal window, with the bash terminal selected.

  5. 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

  1. Pada terminal Visual Studio Code, masuk ke Azure dengan menjalankan perintah berikut:

    az login
    
  2. Masuk ke akun Azure Anda melalui browser yang terbuka.

    Terminal Visual Studio Code menampilkan daftar langganan yang terkait dengan akun ini.

  3. 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.

  4. Mendapatkan ID Langganan Concierge.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. 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.

  1. Pada menu Terminal, pilih Terminal Baru. Jendela terminal biasanya terbuka di bagian bawah layar Anda.

  2. Jika shell yang ditampilkan di sisi kanan jendela terminal adalah powershell atau pwsh, shell yang benar terbuka, dan Anda dapat melompat ke bagian berikutnya.

    Screenshot of the Visual Studio Code terminal window, with the pwsh option displayed in the shell dropdown list.

  3. Jika shell selain powershell atau pwsh muncul, pilih panah dropdown shell, lalu pilih PowerShell.

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown list shown and PowerShell selected.

  4. Dalam daftar shell terminal, pilih powershell atau pwsh.

    Screenshot of the Visual Studio Code terminal window, with the PowerShell terminal selected.

  5. 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

  1. Di terminal Visual Studio Code, jalankan perintah berikut:

    Connect-AzAccount
    

    Browser terbuka sehingga Anda dapat masuk ke akun Azure.

  2. 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.

  3. 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.

  4. Dapatkan ID langganan. Menjalankan perintah berikut akan mencantumkan langganan Anda dan ID mereka. Cari Concierge Subscription, lalu salin ID dari kolom kedua. Ini terlihat seperti cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  5. 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

  1. Buka portal Microsoft Azure dan pastikan Anda berada di langganan kotak pasir:

    1. Pilih avatar Anda di sudut kanan atas halaman.
    2. Lalu pilih Beralih direktori. Dalam daftar, pilih direktori Microsoft Learn Sandbox.
  2. Di panel sebelah kiri, pilih Grup sumber daya.

  3. Pilih [nama grup sumber daya kotak pasir].

  4. Di Gambaran Umum, Anda bisa melihat satu penyebaran telah berhasil.

    Screenshot of the Azure portal interface for the resource group overview, with the deployments section showing that one succeeded.

  5. Pilih 1 Berhasil melihat detail penyebaran.

    Screenshot of the Azure portal interface for the deployments, with the one deployment listed and a succeeded status.

  6. 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.

    Screenshot of the Azure portal interface for the specific deployment, with an App Service plan and app listed.

  7. Di menu sebelah kiri, pilih Input.

    Screenshot of the Azure portal interface for the specific deployment, with the 'Inputs' menu item highlighted.

  8. Perhatikan bahwa parameter dan nilainya dicantumkan.

    Screenshot of the Azure portal interface for the specific deployment showing the parameter values.

  9. Biarkan halaman terbuka di browser Anda. Anda akan memeriksa penyebaran lagi.