Latihan - Menyebarkan beberapa sumber daya dengan menggunakan perulangan

Selesai

Sejauh ini, templat Bicep Anda telah menggunakan satu server logika Azure SQL, dengan pengaturan audit disertakan untuk lingkungan produksi Anda. Anda sekarang perlu menyebarkan beberapa server logika, satu untuk setiap kawasan di mana perusahaan Anda meluncurkan boneka beruang cerdas barunya.

Dalam latihan ini, Anda akan memperluas kode Bicep yang Anda buat sebelumnya sehingga Anda dapat menyebarkan instans database Anda ke beberapa wilayah Azure.

Selama proses tersebut, Anda akan:

  • Pindahkan kode Bicep Anda yang ada ke dalam modul.
  • Buat file Bicep baru dengan perulangan salinan untuk menyebarkan sumber daya modul beberapa kali.
  • Sebarkan file Bicep, dan verifikasikan penyebaran sumber daya.
  • Ubah parameter untuk menambahkan lokasi tambahan, sebarkan ulang file, lalu verifikasi bahwa sumber daya baru telah disebarkan.

Memindahkan resource ke dalam modul

  1. Di Visual Studio Code, buat folder baru bernama modul di folder yang sama tempat Anda membuat file main.bicep Anda.

  2. Pindahkan file main.bicep Anda ke folder modul yang baru saja Anda buat.

  3. Ganti nama file main.bicep menjadi database.bicep.

Menyebarkan beberapa instans dengan menggunakan perulangan salinan

  1. Membuat file main.bicep baru untuk menggantikan file yang baru saja Anda pindahkan dan ganti namanya.

  2. Buka file main.bicep baru, dan tambahkan parameter berikut:

    @description('The Azure regions into which the resources should be deployed.')
    param locations array = [
      'westeurope'
      'eastus2'
    ]
    
    @secure()
    @description('The administrator login username for the SQL server.')
    param sqlServerAdministratorLogin string
    
    @secure()
    @description('The administrator login password for the SQL server.')
    param sqlServerAdministratorLoginPassword string
    
  3. Di bawah deklarasi parameter, tambahkan deklarasi modul berikut:

    module databases 'modules/database.bicep' = [for location in locations: {
      name: 'database-${location}'
      params: {
        location: location
        sqlServerAdministratorLogin: sqlServerAdministratorLogin
        sqlServerAdministratorLoginPassword: sqlServerAdministratorLoginPassword
      }
    }]
    

    Perhatikan bahwa deklarasi modul mengulang semua nilai dalam parameter array locations.

  4. Simpan perubahan pada file.

Memverifikasi file Bicep Anda

Setelah Anda menyelesaikan semua perubahan sebelumnya, file main.bicep Anda akan terlihat seperti contoh ini:

@description('The Azure regions into which the resources should be deployed.')
param locations array = [
  'westeurope'
  'eastus2'
]

@secure()
@description('The administrator login username for the SQL server.')
param sqlServerAdministratorLogin string

@secure()
@description('The administrator login password for the SQL server.')
param sqlServerAdministratorLoginPassword string

module databases 'modules/database.bicep' = [for location in locations: {
  name: 'database-${location}'
  params: {
    location: location
    sqlServerAdministratorLogin: sqlServerAdministratorLogin
    sqlServerAdministratorLoginPassword: sqlServerAdministratorLoginPassword
  }
}]

File database.bicep Anda akan terlihat seperti contoh ini:

@description('The Azure region into which the resources should be deployed.')
param location string

@secure()
@description('The administrator login username for the SQL server.')
param sqlServerAdministratorLogin string

@secure()
@description('The administrator login password for the SQL server.')
param sqlServerAdministratorLoginPassword string

@description('The name and tier of the SQL database SKU.')
param sqlDatabaseSku object = {
  name: 'Standard'
  tier: 'Standard'
}

@description('The name of the environment. This must be Development or Production.')
@allowed([
  'Development'
  'Production'
])
param environmentName string = 'Development'

@description('The name of the audit storage account SKU.')
param auditStorageAccountSkuName string = 'Standard_LRS'

var sqlServerName = 'teddy${location}${uniqueString(resourceGroup().id)}'
var sqlDatabaseName = 'TeddyBear'
var auditingEnabled = environmentName == 'Production'
var auditStorageAccountName = take('bearaudit${location}${uniqueString(resourceGroup().id)}', 24)

resource sqlServer 'Microsoft.Sql/servers@2021-11-01-preview' = {
  name: sqlServerName
  location: location
  properties: {
    administratorLogin: sqlServerAdministratorLogin
    administratorLoginPassword: sqlServerAdministratorLoginPassword
  }
}

resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-11-01-preview' = {
  parent: sqlServer
  name: sqlDatabaseName
  location: location
  sku: sqlDatabaseSku
}

resource auditStorageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = if (auditingEnabled) {
  name: auditStorageAccountName
  location: location
  sku: {
    name: auditStorageAccountSkuName
  }
  kind: 'StorageV2'  
}

resource sqlServerAudit 'Microsoft.Sql/servers/auditingSettings@2021-11-01-preview' = if (auditingEnabled) {
  parent: sqlServer
  name: 'default'
  properties: {
    state: 'Enabled'
    storageEndpoint: environmentName == 'Production' ? auditStorageAccount.properties.primaryEndpoints.blob : ''
    storageAccountAccessKey: environmentName == 'Production' ? listKeys(auditStorageAccount.id, auditStorageAccount.apiVersion).keys[0].value : ''
  }
}

Jika tidak, salin contoh atau sesuaikan templat Anda agar sesuai dengan contoh.

Menyebarkan templat Bicep ke Azure

Di terminal Visual Studio Code, sebarkan templat Bicep ke Azure dengan menjalankan kode berikut:

az deployment group create --template-file main.bicep

Di terminal Visual Studio Code, sebarkan templat Bicep ke Azure dengan menjalankan perintah Azure PowerShell berikut:

New-AzResourceGroupDeployment -TemplateFile main.bicep

Perhatian

Pastikan untuk menggunakan login dan kata sandi yang sama dengan yang Anda gunakan sebelumnya, atau penyebaran tidak akan berhasil diselesaikan.

Tunggu hingga penyebaran selesai.

Verifikasi penyebaran

Setelah penyebaran selesai, Anda ingin memverifikasi bahwa server logis dan database baru disebarkan dan bahwa server tersebut terletak di wilayah Azure yang benar.

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

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

  3. Verifikasi bahwa server logika dan database baru terletak di kawasan US Timur 2, yang Anda tentukan dalam nilai default parameter locations.

    Screenshot of the Azure portal, showing the deployment of the logical servers and databases in various locations.

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

Memperbarui dan menyebarkan templat ke Azure dengan lokasi tambahan untuk server logika

Tim boneka beruang teddy akan segera diluncurkan lagi, kali ini ke Asia. Tim meminta Anda untuk menyebarkan server dan database baru di kawasan Asia Timur. Untuk melakukannya, Anda perlu memperbarui parameter Bicep dan menyebarkan ulang templat Anda.

  1. Kembali ke Visual Studio Code. Di bagian atas file main.bicep, tambahkan nilai baru ke array locations:

    @description('The Azure regions into which the resources should be deployed.')
    param locations array = [
      'westeurope'
      'eastus2'
      'eastasia'
    ]
    
  2. Simpan perubahan pada file.

  3. Pada terminal Visual Studio Code, sebarkan ulang file dengan menjalankan perintah berikut:

    az deployment group create --template-file main.bicep
    
  1. Kembali ke Visual Studio Code. Di bagian atas file main.bicep, tambahkan nilai baru ke array locations:

    @description('The Azure regions into which the resources should be deployed.')
    param locations array = [
      'westeurope'
      'eastus2'
      'eastasia'
    ]
    
  2. Simpan perubahan pada file.

  3. Pada terminal Visual Studio Code, sebarkan ulang file dengan menjalankan perintah berikut:

    New-AzResourceGroupDeployment -TemplateFile main.bicep
    

Perhatian

Pastikan untuk menggunakan login dan kata sandi yang sama dengan yang Anda gunakan sebelumnya, atau penyebaran tidak akan berhasil diselesaikan.

Tunggu hingga penyebaran selesai.

Memverifikasi penyebaran ulang

Setelah Anda melakukan penyebaran ulang sumber daya, Anda harus memverifikasi bahwa server logis tambahan dan sumber daya database telah dibuat di kawasan Asia Timur.

  1. Kembali ke portal Microsoft Azure dan pilih grup sumber daya [nama grup sumber daya kotak pasir]. Jika perlu, pilih Refresh untuk melihat sumber daya yang baru disebarkan.

  2. Verifikasi bahwa server dan database logika baru telah disebarkan di kawasan Asia Timur.

    Screenshot of the Azure portal, showing the deployment of a logical server and database in an additional region.