Cvičení – přepracování souboru Bicep pro používání modulů
V tomto cvičení aktualizujete soubor Bicep, který jste vytvořili dříve, aby používal modul pro prostředky Azure App Service. Moduly pomáhají udržet záměr hlavního souboru jasnější. Pokud se rozhodnete, můžete modul App Service znovu použít v jiných souborech Bicep.
Během tohoto procesu:
- Přidejte nový modul a přesuňte do něj prostředky služby App Service.
- Odkazujte na modul z hlavního souboru Bicep.
- Přidejte výstup pro název hostitele aplikace App Service a vygenerujte ho z modulu a nasazení souborů Bicep.
- Otestujte nasazení a ujistěte se, že je soubor Bicep platný.
Přidání nového souboru 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 . Ve složce modulů vytvořte soubor s názvem appService.bicep. Uložte soubor.
Do souboru appService.bicep přidejte následující obsah:
param location string param appServiceAppName string @allowed([ 'nonprod' 'prod' ]) param environmentType string var appServicePlanName = 'toy-product-launch-plan' var appServicePlanSkuName = (environmentType == 'prod') ? 'P2v3' : 'F1' resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = { name: appServicePlanName location: location sku: { name: appServicePlanSkuName } } resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true } }Všimněte si, že jste zkopírovali parametry a proměnné ze souboru main.bicep Bicep , protože soubor appService.bicep Bicep musí být samostatný.
Uložte změny souboru. Všimněte si, že Visual Studio Code nezobrazuje žádné červené vlnovky, které označují upozornění na chybějící proměnné, chybějící parametry nebo neplatné prostředky.
Přidání odkazu na modul z nadřazeného souboru Bicep
Nyní, když máte úplný modul pro nasazení prostředků App Service, můžete na modul odkazovat v nadřazeném souboru Bicep. Vzhledem k tomu, že modul nasazuje prostředky služby App Service, můžete z nadřazeného souboru odstranit přidružené prostředky a proměnné.
V souboru main.bicep odstraňte prostředky služby App Service a definice proměnných
appServicePlanNameaappServicePlanSkuName. Neodstraňujte parametry služby App Service, protože je stále potřebujete. Také neodstraňovat parametry účtu úložiště, proměnnou nebo prostředky.V dolní části souboru main.bicep přidejte následující kód Bicep:
module appService 'modules/appService.bicep' = { name: 'appService' params: { location: location appServiceAppName: appServiceAppName environmentType: environmentType } }Všimněte si, že zadáváte parametry modulu tak, že odkazujete na parametry v nadřazeném souboru Bicep.
Uložte změny souboru.
Přidání názvu hostitele jako výstupu
Do dolní části souboru appService.bicep přidejte následující kód Bicep:
output appServiceAppHostName string = appServiceApp.properties.defaultHostNameTento kód deklaruje, že výstup pro tento modul, který bude pojmenován
appServiceAppHostName, bude typustring. Výstup převezme jeho hodnotu zdefaultHostNamevlastnosti aplikace App Service.Uložte změny souboru.
Tento výstup je deklarován v souboru Bicep, který použijeme jako modul, takže bude k dispozici pouze nadřazenému souboru Bicep. Musíte také vrátit výstup osobě, která soubor nasadila.
Otevřete soubor main.bicep a do dolní části souboru přidejte následující kód:
output appServiceAppHostName string = appService.outputs.appServiceAppHostNameVšimněte si, že tento výstup je deklarován podobným způsobem jako výstup v modulu. Tentokrát ale odkazujete na výstup modulu místo na vlastnost prostředku.
Uložte změny souboru.
Ověření souborů Bicep
Po dokončení všech předchozích změn by měl váš soubor main.bicep vypadat jako v tomto příkladu:
param location string = 'eastus'
param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
param appServiceAppName string = 'toylaunch${uniqueString(resourceGroup().id)}'
@allowed([
'nonprod'
'prod'
])
param environmentType string
var storageAccountSkuName = (environmentType == 'prod') ? 'Standard_GRS' : 'Standard_LRS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountSkuName
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
module appService 'modules/appService.bicep' = {
name: 'appService'
params: {
location: location
appServiceAppName: appServiceAppName
environmentType: environmentType
}
}
output appServiceAppHostName string = appService.outputs.appServiceAppHostName
Soubor appService.bicep by měl vypadat jako v tomto příkladu:
param location string
param appServiceAppName string
@allowed([
'nonprod'
'prod'
])
param environmentType string
var appServicePlanName = 'toy-product-launch-plan'
var appServicePlanSkuName = (environmentType == 'prod') ? 'P2v3' : 'F1'
resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = {
name: appServicePlanName
location: location
sku: {
name: appServicePlanSkuName
}
}
resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = {
name: appServiceAppName
location: location
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
}
}
output appServiceAppHostName string = appServiceApp.properties.defaultHostName
Pokud se některý z Bicep souborů neshoduje, zkopírujte příklad nebo upravte svůj soubor tak, aby odpovídal příkladu.
Nasazení aktualizovaného souboru Bicep
V terminálu spusťte následující příkaz Azure CLI.
az deployment group create \
--name main \
--template-file main.bicep \
--parameters environmentType=nonprod
V terminálu spusťte následující příkaz Azure PowerShellu.
New-AzResourceGroupDeployment `
-Name main `
-TemplateFile main.bicep `
-environmentType nonprod
Zkontrolujte své nasazení
V prohlížeči se vraťte na web Azure Portal. Přejděte do skupiny prostředků; nyní existují dvě úspěšná nasazení.
Vyberte odkaz 2 Úspěšný. Všimněte si, že v seznamu máte nasazení označované jako hlavní a nové nasazení s názvem appService.
Vyberte nasazení s názvem main, poté vyberte Podrobnosti nasazení a rozbalte seznam nasazených prostředků.
Všimněte si, že naše nasazení modulu se zobrazí v seznamu.
Vyberte kartu Výstupy . Všimněte si, že existuje výstup s názvem appServiceAppHostName s názvem hostitele vaší aplikace App Service. Zkopírujte název hostitele do schránky.
Otevřete novou kartu prohlížeče a vložte zkopírovaný název hostitele. Měla by se zobrazit výchozí úvodní stránka služby App Service.
Gratulujeme! Úspěšně jste nasadili základy pro skvělou aplikaci.