Cvičení – přidání parametrů a dekorátorů

Dokončeno

Poznámka:

Při prvním aktivaci sandboxu a přijetí podmínek je váš účet Microsoft přidružený k novému adresáři Azure s názvem Microsoft Learn Sandbox. Také jste přidáni do speciálního předplatného s názvem Concierge Subscription.

V rámci migrace aplikace personálního oddělení vytváříte šablonu Bicep pro nasazení prostředků Azure. V tomto cvičení vytvoříte plán služby Aplikace Azure a aplikaci služby App Service. U každého parametru použijete dekorátory, abyste měli jistotu, že budou vždy obsahovat očekávané hodnoty.

Během tohoto procesu provedete následující úlohy:

  • Vytvořte soubor Bicep, který obsahuje parametry a proměnné.
  • Přidejte do parametrů dekorátory.
  • Otestujte nasazení a ujistěte se, že je šablona platná.

V tomto cvičení se používá rozšíření Bicep pro Visual Studio Code. Nezapomeňte toto rozšíření do Visual Studio Codu nainstalovat.

Vytvoření šablony Bicep s parametry

  1. Otevřete Visual Studio Code.

  2. Vytvořte nový soubor s názvem main.bicep.

  3. Uložte prázdný soubor tak, aby Visual Studio Code načítal nástroje Bicep.

    Můžete vybrat možnost Uložit jako soubor>nebo vybrat Kombinaci kláves Ctrl+S ve Windows (⌘+S v systému macOS). Nezapomeňte si zapamatovat, kam jste soubor uložili. Můžete například chtít vytvořit složku skriptů , do které ji chcete uložit.

  4. Do souboru přidejte následující obsah. Šablonu nasadíte brzy. Místo kopírování a vkládání zadejte obsah sami, abyste viděli, jak vám nástroje pomáhají psát soubory Bicep.

    param environmentName string = 'dev'
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    param appServicePlanInstanceCount int = 1
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    param location string = 'eastus'
    
    var appServicePlanName = '${environmentName}-${solutionName}-plan'
    var appServiceAppName = '${environmentName}-${solutionName}-app'
    

    Tady vytváříte několik parametrů a používají kombinaci typů. Definujete výchozí hodnoty pro každý parametr. Mezi výchozí hodnoty patří interpolace řetězců a uniqueString() funkce.

    Tip

    Funkce uniqueString() je užitečná při vytváření globálně jedinečných názvů prostředků. Vrátí řetězec, který je stejný pro každé nasazení do stejné skupiny prostředků, ale liší se při nasazení do různých skupin prostředků nebo předplatných.

    Definujete také proměnné, které sestavují názvy plánu služby Aplikace Azure a aplikace služby App Service. Jejich hodnoty zahrnují některé parametry, které jste zadali. Hodnoty parametrů může přepsat uživatel, který provádí nasazení, ale hodnoty proměnných nelze přepsat.

    Tip

    Určujete, že location parametr by měl být nastaven na westus3hodnotu . Za normálních okolností byste prostředky vytvořili ve stejném umístění jako skupina prostředků pomocí resourceGroup().location vlastnosti. Když ale pracujete s sandboxem Microsoft Learn, musíte použít určité oblasti Azure, které neodpovídají umístění skupiny prostředků.

  5. V souboru main.bicep v editoru Visual Studio Code přidejte do dolní části souboru následující kód:

    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: appServicePlanSku.name
        tier: appServicePlanSku.tier
        capacity: appServicePlanInstanceCount
      }
    }
    
    resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
      }
    }
    

    Všimněte si, že prostředky používají hodnoty parametrů, které jste definovali.

  6. Uložte změny souboru.

Přidání popisů parametrů

  1. V souboru main.bicep v editoru Visual Studio Code přidejte @description dekorátor přímo nad každý parametr, který jste vytvořili v předchozí úloze. Parametry by měly vypadat podobně jako v tomto příkladu:

    @description('The name of the environment. This must be dev, test, or prod.')
    param environmentName string = 'dev'
    
    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
    @description('The number of App Service plan instances.')
    param appServicePlanInstanceCount int = 1
    
    @description('The name and tier of the App Service plan SKU.')
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    
    @description('The Azure region into which the resources should be deployed.')
    param location string = 'eastus'
    
  2. Uložte změny souboru.

Omezení vstupních hodnot

Vaše společnost toy nasadí aplikaci HR do tří prostředí: dev, testa prod. Parametr omezíte environmentName tak, aby umožňoval pouze tyto tři hodnoty.

  1. V souboru main.bicep v editoru Visual Studio Code vyhledejte environmentName parametr. @allowed Vložte dekorátor pod @description dekorátor. Po dokončení by měl parametr vypadat jako v tomto příkladu:

    @description('The name of the environment. This must be dev, test, or prod.')
    @allowed([
      'dev'
      'test'
      'prod'
    ])
    param environmentName string = 'dev'
    

    Všimněte si, že omezujete hodnotu environmentName parametru pouze devna hodnotu parametru , a .prodtest Pokud v budoucnu přidáte další prostředí, budete muset tento seznam aktualizovat.

  2. Uložte změny souboru.

Omezení vstupních délek

Váš solutionName parametr se používá ke generování názvů prostředků. Chcete vynutit minimální délku 5 znaků a maximální délku 30 znaků.

  1. V souboru main.bicep v editoru Visual Studio Code vyhledejte solutionName parametr. Přidejte @minLength a @maxLength dekorátory pod @description dekorátor. Po dokončení by měl parametr vypadat jako v tomto příkladu:

    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    @minLength(5)
    @maxLength(30)
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
  2. Uložte změny souboru.

Omezení číselných hodnot

Dále zajistíte, že appServicePlanInstanceCount parametr povoluje pouze hodnoty od 1 do 10.

  1. V souboru main.bicep v editoru Visual Studio Code vyhledejte appServicePlanInstanceCount parametr. Přidejte @minValue a @maxValue dekorátory pod @description dekorátor. Po dokončení by měl parametr vypadat jako v tomto příkladu:

    @description('The number of App Service plan instances.')
    @minValue(1)
    @maxValue(10)
    param appServicePlanInstanceCount int = 1
    
  2. Uložte změny souboru.

Ověření souboru Bicep

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

@description('The name of the environment. This must be dev, test, or prod.')
@allowed([
  'dev'
  'test'
  'prod'
])
param environmentName string = 'dev'

@description('The unique name of the solution. This is used to ensure that resource names are unique.')
@minLength(5)
@maxLength(30)
param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'

@description('The number of App Service plan instances.')
@minValue(1)
@maxValue(10)
param appServicePlanInstanceCount int = 1

@description('The name and tier of the App Service plan SKU.')
param appServicePlanSku object = {
  name: 'F1'
  tier: 'Free'
}

@description('The Azure region into which the resources should be deployed.')
param location string = 'eastus'

var appServicePlanName = '${environmentName}-${solutionName}-plan'
var appServiceAppName = '${environmentName}-${solutionName}-app'

resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: appServicePlanSku.name
    tier: appServicePlanSku.tier
    capacity: appServicePlanInstanceCount
  }
}

resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
  name: appServiceAppName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

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

Nasazení šablony Bicep do Azure

Pokud chcete tuto šablonu nasadit do Azure, musíte se přihlásit ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure CLI, a nezapomeňte se přihlásit pomocí stejného účtu, který jste použili k aktivaci sandboxu.

  1. V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.

  2. Pokud je prostředí zobrazené na pravé straně okna terminálu Bash, je otevřené správné prostředí a můžete přejít k další části.

    Snímek obrazovky okna terminálu editoru Visual Studio Code se zobrazenou možností Bash

  3. Pokud se zobrazí jiné prostředí než Bash, vyberte šipku rozevíracího seznamu prostředí a pak vyberte Azure Cloud Shell (Bash).

    Snímek obrazovky okna terminálu editoru Visual Studio Code s rozevíracím seznamem prostředí terminálu a vybranou možností Výchozí git Bash

  4. V seznamu terminálových prostředí vyberte Bash.

    Snímek obrazovky okna terminálu editoru Visual Studio Code s vybraným terminálem Bash

  5. V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:

    cd templates
    

Instalace Bicep

Spuštěním následujícího příkazu se ujistěte, že máte nejnovější verzi Bicep:

az bicep install && az bicep upgrade

Přihlášení k Azure

  1. V terminálu editoru Visual Studio Code se přihlaste k Azure spuštěním následujícího příkazu:

    az login
    
  2. V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.

    V terminálu editoru Visual Studio Code se zobrazí seznam předplatných přidružených k tomuto účtu.

  3. Nastavte výchozí předplatné pro všechny příkazy Azure CLI, které spustíte v této relaci.

    az account set --subscription "Concierge Subscription"
    

    Poznámka:

    Pokud jste nedávno použili více než jeden sandbox, může se v terminálu zobrazit více než jedna instance předplatného Concierge. V tomto případě použijte následující dva kroky k nastavení jednoho jako výchozího předplatného. Pokud předchozí příkaz proběhl úspěšně a zobrazí se jenom jedno předplatné Concierge, přeskočte následující dva kroky.

  4. Získejte ID předplatného Concierge Subscription.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Nastavte výchozí předplatné pomocí ID předplatného. Nahraďte {ID vašeho předplatného} za ID nejnovějšího předplatného Concierge Subscription.

    az account set --subscription {your subscription ID}
    

Nastavení výchozí skupiny prostředků

Když použijete Azure CLI, můžete v tomto cvičení nastavit výchozí skupinu prostředků a vynechat parametr ze zbývajících příkazů Azure CLI. Nastavte výchozí hodnotu na skupinu prostředků, která je pro vás vytvořená v prostředí sandboxu.

az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"

Nasazení šablony do Azure pomocí Azure CLI

Spuštěním následujícího kódu z terminálu v editoru Visual Studio Code nasaďte šablonu Bicep do Azure. Hodnoty parametrů nemusíte zadávat, protože mají zadané výchozí hodnoty. Dokončení tohoto procesu může trvat minutu nebo dvě a pak se zobrazí úspěšné nasazení.

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

V terminálu uvidíte Running....

Pokud chcete tuto šablonu nasadit do Azure, přihlaste se ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure PowerShell, a přihlaste se ke stejnému účtu, který aktivoval sandbox.

  1. V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.

  2. Pokud je prostředí zobrazené na pravé straně okna terminálu powershell nebo pwsh, otevře se správné prostředí a můžete přejít k další části.

    Snímek obrazovky okna terminálu editoru Visual Studio Code s možností pwsh zobrazenou v rozevíracím seznamu prostředí

  3. Pokud se zobrazí jiné prostředí než PowerShell nebo pwsh, vyberte šipku rozevíracího seznamu prostředí a pak vyberte PowerShell.

    Snímek obrazovky okna terminálu editoru Visual Studio Code se zobrazeným rozevíracím seznamem prostředí terminálu a vybranou možností PowerShellu

  4. V seznamu terminálových prostředí vyberte PowerShell nebo pwsh.

    Snímek obrazovky okna terminálu editoru Visual Studio Code s vybraným terminálem PowerShellu

  5. V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:

    Set-Location -Path templates
    

Instalace rozhraní příkazového řádku Bicep

Pokud chcete použít Bicep z Azure PowerShellu, nainstalujte rozhraní příkazového řádku Bicep.

Přihlášení k Azure přes Azure PowerShell

  1. V terminálu editoru Visual Studio Code spusťte následující příkaz:

    Connect-AzAccount
    

    Otevře se prohlížeč, abyste se mohli přihlásit ke svému účtu Azure.

  2. Po přihlášení k Azure se v terminálu zobrazí seznam předplatných přidružených k tomuto účtu.

    Pokud jste aktivovali sandbox, zobrazí se předplatné s názvem Concierge Subscription . Použijte ho pro zbytek cvičení.

  3. Nastavte výchozí předplatné pro všechny příkazy Azure PowerShellu, které spustíte v této relaci.

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    Poznámka:

    Pokud jste nedávno použili více než jeden sandbox, může se v terminálu zobrazit více než jedna instance předplatného Concierge. V tomto případě použijte následující dva kroky k nastavení jednoho jako výchozího předplatného. Pokud předchozí příkaz proběhl úspěšně a zobrazí se jenom jedno předplatné Concierge, přeskočte následující dva kroky.

  4. Zjistěte ID předplatného. Spuštěním následujícího příkazu zobrazíte seznam vašich předplatných a jejich ID. Concierge SubscriptionVyhledejte a zkopírujte ID z druhého sloupce. Vypadá to jako aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

    Get-AzSubscription
    
  5. Změňte své aktivní předplatné na Concierge Subscription. Nezapomeňte nahradit {ID vašeho předplatného} za id, které jste zkopírovali.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    

Nastavení výchozí skupiny prostředků

Výchozí skupinu prostředků můžete nastavit a vynechat parametr ze zbývajících příkazů Azure PowerShellu v tomto cvičení. Nastavte tuto výchozí hodnotu na skupinu prostředků vytvořenou pro vás v sandboxovém prostředí.

Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>

Nasazení šablony do Azure pomocí PowerShellu

Nasaďte šablonu do Azure pomocí následujícího příkazu Azure PowerShellu v terminálu. Hodnoty parametrů nemusíte zadávat, protože mají zadané výchozí hodnoty. Dokončení tohoto procesu může trvat minutu nebo dvě a pak se zobrazí úspěšné nasazení.

New-AzResourceGroupDeployment -TemplateFile main.bicep

Ověření nasazení

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

    1. V pravém horním rohu stránky vyberte svůj avatar.
    2. Vyberte Přepnout adresář. V seznamu vyberte adresář Microsoft Learn Sandbox.
  2. Na levém panelu vyberte Skupiny prostředků.

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

  4. V přehledu vidíte, že jedno nasazení bylo úspěšné.

    Snímek obrazovky s rozhraním webu Azure Portal pro přehled skupiny prostředků s oddílem nasazení, který ukazuje, že jedno bylo úspěšné

  5. Pokud chcete zobrazit podrobnosti o nasazení, vyberte možnost označující 1 úspěšné nasazení.

    Snímek obrazovky s rozhraním webu Azure Portal pro nasazení se seznamem nasazení a úspěšným stavem

  6. Vyberte nasazení s názvem main , abyste viděli, jaké prostředky byly nasazeny, a pak výběrem podrobností o nasazení rozbalte. V tomto případě je k dispozici plán služby App Service a aplikace.

    Snímek obrazovky s rozhraním webu Azure Portal pro konkrétní nasazení se seznamem plánu služby App Service a aplikace

  7. V nabídce vlevo vyberte Vstupy.

    Snímek obrazovky s rozhraním webu Azure Portal pro konkrétní nasazení se zvýrazněnou položkou nabídky Vstupy

  8. Všimněte si, že jsou uvedeny parametry a jejich hodnoty.

    Snímek obrazovky s rozhraním webu Azure Portal pro konkrétní nasazení zobrazující hodnoty parametrů

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