Øvelse – Legg til parametere og dekoratører

Fullført

Note

Denne øvelsen er valgfri. Hvis du vil fullføre denne øvelsen, må du opprette et Azure-abonnement før du begynner. Hvis du ikke har en Azure-konto eller ikke vil opprette en på dette tidspunktet, kan du lese gjennom instruksjonene slik at du forstår informasjonen som presenteres.

Note

Du må bruke en ressursgruppe for å fullføre trinnene i denne øvelsen. Du kan bruke en ressursgruppe som du allerede har opprettet, eller du kan opprette en ny ressursgruppe spesielt for denne øvelsen. Hvis du velger å opprette en ny ressursgruppe, vil det gjøre det enklere å rydde opp i eventuelle ressurser du oppretter etter hvert som du fullfører øvelsen. Hvis du ikke har en eksisterende ressursgruppe, eller hvis du vil opprette en ny spesifikt for denne øvelsen, kan du følge fremgangsmåten i Bruke Azure-portalen og Azure Resource Manager til å administrere ressursgrupper for å opprette en ressursgruppe ved hjelp av Azure-portalen, eller du kan følge fremgangsmåten i Administrere Azure-ressursgrupper ved hjelp av Azure CLI til å opprette en ressursgruppe ved hjelp av Azure CLI.

Som en del av HR-programoverføringen oppretter du en Bicep-mal for å distribuere Azure-ressurser. I denne øvelsen skal du opprette en Azure App Service-plan og App Service-app. Du bruker dekoratører på hver parameter for å sikre at de alltid vil inneholde verdiene du forventer.

Under prosessen gjør du følgende oppgaver:

  • Opprett en Bicep-fil som inneholder parametere og variabler.
  • Legg til dekoratører i parameterne.
  • Test distribusjonen for å sikre at malen er gyldig.

Denne øvelsen bruker utvidelsen Bicep for Visual Studio Code. Pass på å installere denne utvidelsen i Visual Studio Code.

Opprette en Bicep-mal med parametere

  1. Åpne Visual Studio Code.

  2. Opprett en ny fil kalt main.bicep.

  3. Lagre den tomme filen slik at Visual Studio Code laster inn Bicep-verktøyet.

    Du kan enten velge Fillagre>som eller velge Ctrl+S i Windows (⌘+S på macOS). Husk hvor du har lagret filen. Det kan for eksempel være lurt å opprette en skriptmappe for å lagre den i.

  4. Legg til følgende innhold i filen. Du distribuerer malen snart. Skriv inn innholdet selv i stedet for å kopiere og lime inn, slik at du kan se hvordan verktøyet hjelper deg med å skrive Dine Bicep-filer.

    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'
    

    Du oppretter flere parametere her, og de bruker en blanding av typer. Du definerer standardverdier for hver parameter. Noen av standardverdiene inkluderer streng interpolering og uniqueString()-funksjonen.

    Tip

    Funksjonen uniqueString() er nyttig for å opprette globalt unike ressursnavn. Den returnerer en streng som er den samme på hver distribusjon til samme ressursgruppe, men forskjellig når du distribuerer til forskjellige ressursgrupper eller abonnementer.

    Du definerer også variabler som konstruerer navnene på Azure App Service-abonnementet og App Service-appen. Verdiene inkluderer noen av parameterne du har angitt. Parameterverdier kan overstyres av brukeren som utfører distribusjonen, men verdiene for variablene kan ikke overstyres.

  5. I main.bicep-filen i Visual Studio Code legger du til følgende kode nederst i filen:

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

    Legg merke til at ressursene bruker verdiene for parameterne du definerte.

  6. Lagre endringene i filen.

Legg til parameterbeskrivelser

  1. I main.bicep-filen i Visual Studio Code legger du til dekoratøren @description rett over hver parameter du opprettet i den forrige oppgaven. Parameterne skal ligne på dette eksemplet:

    @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. Lagre endringene i filen.

Begrens inndataverdier

Leketøysselskapet distribuerer HR-programmet til tre miljøer: dev, testog prod. Du begrenser environmentName parameteren til bare å tillate disse tre verdiene.

  1. Finn parameteren i environmentName i Visual Studio Code. Sett inn en @allowed dekoratør under @description dekoratøren. Når du er ferdig, skal parameteren se slik ut:

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

    Legg merke til at du begrenser parameterverdien for environmentName parameteren til bare dev, testog prod. Hvis flere miljøer legges til i fremtiden, må du oppdatere denne listen.

  2. Lagre endringene i filen.

Begrens inndatalengder

Parameteren solutionName brukes til å generere navnene på ressursene. Du vil fremtvinge en minimumslengde på fem tegn og en maksimumslengde på 30 tegn.

  1. Finn parameteren i solutionName i Visual Studio Code. Legg til @minLength og @maxLength dekoratører under @description dekoratøren. Når du er ferdig, skal parameteren se slik ut:

    @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. Lagre endringene i filen.

Begrense numeriske verdier

Deretter sikrer du at appServicePlanInstanceCount-parameteren bare tillater verdier mellom 1 og 10.

  1. Finn parameteren i appServicePlanInstanceCount i Visual Studio Code. Legg til @minValue og @maxValue dekoratører under @description dekoratøren. Når du er ferdig, skal parameteren se slik ut:

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

Bekreft En Bicep-fil

Når du har fullført alle de foregående endringene, skal Bicep-filen se slik ut:

@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@2024-04-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: appServicePlanSku.name
    tier: appServicePlanSku.tier
    capacity: appServicePlanInstanceCount
  }
}

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

Hvis det ikke gjør det, kopierer du eksempelet eller justerer malen slik at den samsvarer med eksemplet.

Distribuer Bicep-malen til Azure

Hvis du vil distribuere denne malen til Azure, må du logge på Azure-kontoen fra Visual Studio Code-terminalen. Pass på at du har installert Azure CLI-verktøy.

  1. Terminal-menyen velger du Ny terminal. Terminalvinduet åpnes vanligvis i nedre halvdel av skjermen.

  2. Hvis terminalvinduet viser bash på høyre side, betyr det at riktig skall allerede er åpent. Alternativt, hvis du ser et bash shell-ikon til høyre, kan du velge det for å starte skallet.

    Skjermbilde av Terminalvinduet for Visual Studio Code, med bash-alternativet vist.

    Hvis det vises et annet skall enn bash , velger du rullegardinpilen for skallet, og deretter velger du Git Bash.

    Skjermbilde av terminalvinduet for Visual Studio Code, der rullegardinlisten for terminalskallet vises og Git Bash Default er valgt.

  3. Gå til katalogen der du lagret malen, i terminalen. Hvis du for eksempel lagret malen i malmappen , kan du bruke denne kommandoen:

    cd templates
    

Installere Bicep

Kjør følgende kommando for å sikre at du har den nyeste versjonen av Bicep:

az bicep install && az bicep upgrade

Logg på Azure ved hjelp av Azure CLI

  1. Logg på Azure i Visual Studio Code-terminalen ved å kjøre følgende kommando:

    az login
    
  2. Logg på Azure-kontoen i nettleseren som åpnes.

    Visual Studio Code-terminalen viser en liste over abonnementene som er knyttet til denne kontoen.

  3. Finn abonnementet du vil bruke for denne øvelsen, i listen.

    Hvis du gikk glipp av listen fra påloggingen, kan du bruke følgende kodesnutt til å vise abonnementene på nytt.

    az account list --output table
    
  4. Angi standardabonnementet for alle Azure CLI-kommandoene du kjører i denne økten.

    az account set --subscription "Your Subscription Name or ID"
    

Distribuer malen til Azure ved hjelp av Azure CLI

Kjør følgende kode fra terminalen i Visual Studio Code for å distribuere Bicep-malen til Azure. Du trenger ikke å angi parameterverdiene fordi de har angitt standardverdier. Denne prosessen kan ta et minutt eller to å fullføre, og deretter ser du en vellykket distribusjon.

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

Du ser Running... i terminalen.

Hvis du vil distribuere denne malen til Azure, logger du på Azure-kontoen fra Visual Studio Code-terminalen. Pass på at du har installert Azure PowerShell.

  1. Terminal-menyen velger du Ny terminal. Terminalvinduet åpnes vanligvis i nedre halvdel av skjermen.

  2. Hvis terminalvinduet viser pwsh eller powershell på høyre side, betyr det at riktig skall allerede er åpent. Hvis du ser et PowerShell-skallikon til høyre, kan du også velge det for å starte skallet.

    Skjermbilde av Terminalvinduet for Visual Studio Code, der pwsh-alternativet vises i rullegardinlisten for skallet.

    Hvis et annet skall enn pwsh eller powershell vises, velger du rullegardinpilen for skallet, og deretter velger du PowerShell.

    Skjermbilde av terminalvinduet for Visual Studio Code, der rullegardinlisten for terminalskallet vises og PowerShell er valgt.

  3. Gå til katalogen der du lagret malen, i terminalen. Hvis du for eksempel lagret malen i malmappen , kan du bruke denne kommandoen:

    Set-Location -Path templates
    

Installer Bicep CLI

Hvis du vil bruke Bicep fra Azure PowerShell, installerer du Bicep CLI-.

Logg på Azure ved hjelp av Azure PowerShell

  1. Logg på Azure i Visual Studio Code-terminalen ved å kjøre følgende kommando:

    Connect-AzAccount
    
  2. Logg på Azure-kontoen i nettleseren som åpnes.

  3. Få ID-en for abonnementet du vil bruke for denne øvelsen, ved å kjøre følgende kommando:

    Get-AzSubscription
    

    Abonnements-ID-en er den andre kolonnen. Kopier den andre kolonnen. Det ser omtrent ut som aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

  4. Angi standardabonnementet for alle Azure PowerShell-kommandoene du kjører i denne økten.

    Set-AzContext -SubscriptionId {Your subscription ID}
    

Distribuer malen til Azure ved hjelp av PowerShell

Distribuer malen til Azure ved hjelp av følgende Azure PowerShell-kommando i terminalen. Du trenger ikke å angi parameterverdiene fordi de har angitt standardverdier. Denne prosessen kan ta et minutt eller to å fullføre, og deretter ser du en vellykket distribusjon.

New-AzResourceGroupDeployment -Name main -TemplateFile main.bicep

Bekreft distribusjonen

  1. Gå til Azure-portalen og sørg for at du er i riktig abonnement.

  2. I panelet til venstre velger du Ressursgrupper.

  3. Velg navnet på ressursgruppen.

  4. I Oversikt kan du se at én distribusjon var vellykket.

    Skjermbilde av Azure Portal-grensesnittet for ressursgruppeoversikten, med distribusjonsdelen som viser at en var vellykket.

  5. Velg 1 Vellykket for å se detaljene for distribusjonen.

    Skjermbilde av Azure Portal-grensesnittet for distribusjonene, med den ene distribusjonen oppført og en vellykket status.

  6. Velg distribusjonen kalt main for å se hvilke ressurser som ble distribuert, og velg deretter Distribusjonsdetaljer for å utvide den. I dette tilfellet finnes det en App Service-plan og -app.

    Skjermbilde av Azure Portal-grensesnittet for den bestemte distribusjonen, med en App Service-plan og app oppført.

  7. På menyen til venstre velger du Inndata.

    Skjermbilde av Azure Portal-grensesnittet for den bestemte distribusjonen, med menyelementet «Inndata» uthevet.

  8. Legg merke til at parameterne og verdiene er oppført.

    Skjermbilde av Azure Portal-grensesnittet for den spesifikke distribusjonen som viser parameterverdiene.

  9. La siden være åpen i nettleseren. Du sjekker distribusjoner på nytt senere.