Cvičení – nasazení více prostředků pomocí smyček

Dokončeno

Zatím vaše šablona Bicep nasadila jeden logický server Azure SQL s nastavením auditování, které je součástí vašeho produkčního prostředí. Teď potřebujete nasadit několik logických serverů, jeden pro každou oblast, ve které vaše společnost spouští nového inteligentního medvěda teddy.

V tomto cvičení rozšíříte kód Bicep, který jste vytvořili dříve, abyste mohli nasadit instance databází do několika oblastí Azure.

Během tohoto procesu:

  • Přesuňte stávající kód Bicep do modulu.
  • Vytvořte nový soubor Bicep se smyčkou kopírování pro nasazení prostředků modulu několikrát.
  • Nasaďte soubor Bicep a ověřte nasazení prostředků.
  • Upravte parametr tak, aby přidal další umístění, znovu nasaďte soubor a ověřte, že byly nové prostředky nasazeny.

Přesun prostředků do modulu

  1. V editoru Visual Studio Code vytvořte novou složku s názvem moduly ve stejné složce, ve které jste vytvořili soubor main.bicep .

  2. Přesuňte soubor main.bicep do složky modulů , kterou jste právě vytvořili.

  3. Přejmenujte soubor main.bicep na database.bicep.

Nasazení více instancí pomocí smyčky kopírování

  1. Vytvořte nový soubor main.bicep , který nahradí soubor, který jste právě přesunuli a přejmenovali.

  2. Otevřete nový soubor main.bicep a přidejte následující parametry:

    @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. Pod deklarace parametrů přidejte následující deklaraci modulu:

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

    Všimněte si, že deklarace modulu se smyček nad všemi hodnotami v parametru locations pole.

  4. Uložte změny souboru.

Ověření souboru Bicep

Po dokončení všech předchozích změn by měl váš soubor main.bicep vypadat jako v tomto příkladu:

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

Soubor database.bicep by měl vypadat jako v tomto příkladu:

@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 : ''
  }
}

Pokud tomu tak není, zkopírujte příklad nebo upravte šablonu tak, aby odpovídala příkladu.

Nasazení šablony Bicep do Azure

V terminálu editoru Visual Studio Code nasaďte šablonu Bicep do Azure spuštěním následujícího kódu:

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

V terminálu editoru Visual Studio Code nasaďte šablonu Bicep do Azure spuštěním následujícího příkazu Azure PowerShellu:

New-AzResourceGroupDeployment -TemplateFile main.bicep

Upozornění

Nezapomeňte použít stejné přihlašovací jméno a heslo, které jste použili dříve, nebo se nasazení úspěšně nedokončí.

Počkejte na dokončení nasazení.

Ověření nasazení

Po dokončení nasazení chcete ověřit, že je nový logický server a databáze nasazené a že jsou umístěné ve správných oblastech Azure.

  1. Přejděte na web Azure Portal a ujistěte se, že jste v předplatném sandboxu.

  2. Vyberte [název skupiny prostředků sandboxu].

  3. Ověřte, že se nový logický server a databáze nacházejí v oblasti USA – východ 2, kterou jste zadali ve výchozí hodnotě parametru locations .

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

  4. Nechte stránku v prohlížeči otevřenou. Nasazení znovu zkontrolujete později.

Aktualizace a opětovné nasazení šablony do Azure s dalším umístěním logického serveru

Teddy medvěd toy tým se chystá znovu spustit, tentokrát do Asie. Tým vás žádá o nasazení nového serveru a databáze v oblasti Východní Asie. K tomu je potřeba aktualizovat parametr Bicep a znovu nasadit šablonu.

  1. Vraťte se do editoru Visual Studio Code. V horní části souboru main.bicep přidejte do pole novou hodnotu locations :

    @description('The Azure regions into which the resources should be deployed.')
    param locations array = [
      'westeurope'
      'eastus2'
      'eastasia'
    ]
    
  2. Uložte změny souboru.

  3. V terminálu editoru Visual Studio Code znovu nasaďte soubor spuštěním následujícího kódu:

    az deployment group create --template-file main.bicep
    
  1. Vraťte se do editoru Visual Studio Code. V horní části souboru main.bicep přidejte do pole novou hodnotu locations :

    @description('The Azure regions into which the resources should be deployed.')
    param locations array = [
      'westeurope'
      'eastus2'
      'eastasia'
    ]
    
  2. Uložte změny souboru.

  3. V terminálu editoru Visual Studio Code znovu nasaďte soubor spuštěním následujícího kódu:

    New-AzResourceGroupDeployment -TemplateFile main.bicep
    

Upozornění

Nezapomeňte použít stejné přihlašovací jméno a heslo, které jste použili dříve, nebo se nasazení úspěšně nedokončí.

Počkejte na dokončení nasazení.

Ověření opětovného nasazení

Teď, když jste prostředky nasadili, chcete ověřit, že se v oblasti Východní Asie vytvořil další logický server a databázové prostředky.

  1. Vraťte se na web Azure Portal a vyberte skupinu prostředků [název skupiny prostředků sandboxu]. V případě potřeby vyberte Aktualizovat a zobrazte nově nasazené prostředky.

  2. Ověřte, že byl nový logický server a databáze nasazeny v oblasti Východní Asie.

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