Cvičení – přepracování souboru Bicep pro používání modulů

Dokončeno

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

  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 . Ve složce modulů vytvořte soubor s názvem appService.bicep. Uložte soubor.

  2. 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ý.

  3. 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é.

  1. V souboru main.bicep odstraňte prostředky služby App Service a definice proměnných appServicePlanName a appServicePlanSkuName. 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.

  2. 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.

  3. Uložte změny souboru.

Přidání názvu hostitele jako výstupu

  1. Do dolní části souboru appService.bicep přidejte následující kód Bicep:

    output appServiceAppHostName string = appServiceApp.properties.defaultHostName
    

    Tento kód deklaruje, že výstup pro tento modul, který bude pojmenován appServiceAppHostName, bude typu string. Výstup převezme jeho hodnotu z defaultHostName vlastnosti aplikace App Service.

  2. 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.

  3. Otevřete soubor main.bicep a do dolní části souboru přidejte následující kód:

    output appServiceAppHostName string = appService.outputs.appServiceAppHostName
    

    Vš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.

  4. 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í

  1. V prohlížeči se vraťte na web Azure Portal. Přejděte do skupiny prostředků; nyní existují dvě úspěšná nasazení.

  2. 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.

    Snímek obrazovky rozhraní portálu Azure pro nasazování se dvěma uvedenými nasazováními a úspěšnými stavy

  3. 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.

    Snímek obrazovky s rozhraním webu Azure Portal pro konkrétní nasazení se seznamem jednoho prostředku

  4. 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.

    Snímek obrazovky s rozhraním webu Azure Portal pro výstupy konkrétního nasazení

  5. 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.

    Snímek obrazovky s výchozí úvodní stránkou služby App Service

Gratulujeme! Úspěšně jste nasadili základy pro skvělou aplikaci.