Cvičení – nasazení více prostředků pomocí smyček
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
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 .
Přesuňte soubor main.bicep do složky modulů , kterou jste právě vytvořili.
Přejmenujte soubor main.bicep na database.bicep.
Nasazení více instancí pomocí smyčky kopírování
Vytvořte nový soubor main.bicep , který nahradí soubor, který jste právě přesunuli a přejmenovali.
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
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.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.
Přejděte na web Azure Portal a ujistěte se, že jste v předplatném sandboxu.
Vyberte
[název skupiny prostředků sandboxu] .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
.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.
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' ]
Uložte změny souboru.
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
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' ]
Uložte změny souboru.
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.
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.Ověřte, že byl nový logický server a databáze nasazeny v oblasti Východní Asie.