Gyakorlat – Több erőforrás üzembe helyezése hurkok használatával

Befejeződött

A Bicep-sablon eddig egyetlen Azure SQL logikai kiszolgálót helyezett üzembe az éles környezet naplózási beállításaival. Most több logikai kiszolgálót kell üzembe helyeznie, egyet minden régióban, ahol a vállalat elindítja az új intelligens mackóját.

Ebben a gyakorlatban kiterjeszti a korábban létrehozott Bicep-kódot, hogy több Azure-régióban is üzembe helyezhesse az adatbázisok példányait.

A folyamat során a következőt fogja elvégezni:

  • Helyezze át a meglévő Bicep-kódot egy modulba.
  • Hozzon létre egy új Bicep-fájlt másolási ciklussal a modul erőforrásainak többszöri üzembe helyezéséhez.
  • Telepítse a Bicep-fájlt, és ellenőrizze az erőforrások üzembe helyezését.
  • Módosítsa a paramétert egy további hely hozzáadásához, telepítse újra a fájlt, majd ellenőrizze, hogy az új erőforrások üzembe lettek-e helyezve.

Erőforrások áthelyezése modulba

  1. A Visual Studio Code-ban hozzon létre egy új, modulok nevű mappát ugyanabban a mappában, amelyben létrehozta a main.bicep fájlt.

  2. Helyezze át a main.bicep fájlt az imént létrehozott modulok mappájába.

  3. Nevezze át a main.bicep fájlt database.bicep fájlra.

Több példány üzembe helyezése másolási ciklus használatával

  1. Hozzon létre egy új main.bicep fájlt az imént áthelyezett és átnevezett fájl helyére.

  2. Nyissa meg az új main.bicep fájlt, és adja hozzá a következő paramétereket:

    @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. A paraméterdeklarációk alatt adja hozzá a következő moduldeklarációt:

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

    Figyelje meg, hogy a modul deklarációja a tömbparaméter összes értékére locations hivatkozik.

  4. Mentse a fájl módosításait.

A Bicep-fájl ellenőrzése

Miután elvégezte az összes fenti módosítást, a main.bicep fájlnak az alábbi példához hasonlóan kell kinéznie:

@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
  }
}]

A database.bicep fájlnak a következő példához hasonlóan kell kinéznie:

@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@2023-08-01-preview' = {
  name: sqlServerName
  location: location
  properties: {
    administratorLogin: sqlServerAdministratorLogin
    administratorLoginPassword: sqlServerAdministratorLoginPassword
  }
}

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

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

resource sqlServerAudit 'Microsoft.Sql/servers/auditingSettings@2023-08-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 : ''
  }
}

Ha nem, másolja ki a példát, vagy módosítsa a sablont a példának megfelelően.

A Bicep-sablon üzembe helyezése az Azure-ban

A Visual Studio Code terminálon telepítse a Bicep-sablont az Azure-ban az alábbi kód futtatásával:

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

A Visual Studio Code terminálon telepítse a Bicep-sablont az Azure-ban az alábbi Azure PowerShell-parancs futtatásával:

New-AzResourceGroupDeployment -TemplateFile main.bicep

Figyelem

Ügyeljen arra, hogy ugyanazt a bejelentkezési és jelszót használja, amelyet korábban használt, vagy az üzembe helyezés nem fejeződik be sikeresen.

Várjon, amíg az üzembe helyezés befejeződik.

Az üzemelő példány ellenőrzése

Az üzembe helyezés befejezése után ellenőrizni szeretné, hogy az új logikai kiszolgáló és adatbázis üzembe lett-e helyezve, és hogy azok a megfelelő Azure-régiókban találhatók-e.

  1. Nyissa meg az Azure Portalt, és győződjön meg arról, hogy a tesztkörnyezet-előfizetésben van.

  2. Válassza a [tesztkörnyezeti erőforráscsoport neve] nevű erőforráscsoportot.

  3. Ellenőrizze, hogy az új logikai kiszolgáló és adatbázis az USA 2. keleti régiójában található-e, amelyet a locations paraméter alapértelmezett értékében adott meg.

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

  4. Hagyja nyitva a lapot a böngészőben. Később még ellenőriznie kell az üzembe helyezéseket.

A sablon frissítése és ismételt üzembe helyezése az Azure-ban egy logikai kiszolgáló további helyével

A mackó játék csapata most újra elindul, ezúttal Ázsiába. A csapat arra kéri, hogy helyezzen üzembe egy új kiszolgálót és adatbázist a kelet-ázsiai régióban. Ehhez frissítenie kell a Bicep-paramétert, és újra üzembe kell helyeznie a sablont.

  1. Térjen vissza a Visual Studio Code-hoz. A main.bicep fájl tetején adjon hozzá egy új értéket a locations tömbhöz:

    @description('The Azure regions into which the resources should be deployed.')
    param locations array = [
      'westeurope'
      'eastus2'
      'eastasia'
    ]
    
  2. Mentse a fájl módosításait.

  3. A Visual Studio Code terminálban helyezze újra üzembe a fájlt az alábbi kód futtatásával:

    az deployment group create --template-file main.bicep
    
  1. Térjen vissza a Visual Studio Code-hoz. A main.bicep fájl tetején adjon hozzá egy új értéket a locations tömbhöz:

    @description('The Azure regions into which the resources should be deployed.')
    param locations array = [
      'westeurope'
      'eastus2'
      'eastasia'
    ]
    
  2. Mentse a fájl módosításait.

  3. A Visual Studio Code terminálban helyezze újra üzembe a fájlt az alábbi kód futtatásával:

    New-AzResourceGroupDeployment -TemplateFile main.bicep
    

Figyelem

Ügyeljen arra, hogy ugyanazt a bejelentkezési és jelszót használja, amelyet korábban használt, vagy az üzembe helyezés nem fejeződik be sikeresen.

Várjon, amíg az üzembe helyezés befejeződik.

Az újbóli üzembe helyezés ellenőrzése

Most, hogy újra üzembe helyezi az erőforrásokat, ellenőrizni szeretné, hogy a további logikai kiszolgáló- és adatbázis-erőforrások a kelet-ázsiai régióban lettek-e létrehozva.

  1. Térjen vissza az Azure Portalra, és válassza ki a [tesztkörnyezeti erőforráscsoport neve] erőforráscsoportot. Ha szükséges, válassza a Frissítés lehetőséget az újonnan üzembe helyezett erőforrások megtekintéséhez.

  2. Ellenőrizze, hogy az új logikai kiszolgáló és adatbázis üzembe lett-e helyezve a kelet-ázsiai régióban.

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