Øvelse – Legg til parametere og dekoratører
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
Åpne Visual Studio Code.
Opprett en ny fil kalt main.bicep.
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.
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.
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.
Lagre endringene i filen.
Legg til parameterbeskrivelser
I main.bicep-filen i Visual Studio Code legger du til dekoratøren
@descriptionrett 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'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.
Finn parameteren i
environmentNamei Visual Studio Code. Sett inn en@alloweddekoratør under@descriptiondekoratø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
environmentNameparameteren til baredev,testogprod. Hvis flere miljøer legges til i fremtiden, må du oppdatere denne listen.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.
Finn parameteren i
solutionNamei Visual Studio Code. Legg til@minLengthog@maxLengthdekoratører under@descriptiondekoratø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)}'Lagre endringene i filen.
Begrense numeriske verdier
Deretter sikrer du at appServicePlanInstanceCount-parameteren bare tillater verdier mellom 1 og 10.
Finn parameteren i
appServicePlanInstanceCounti Visual Studio Code. Legg til@minValueog@maxValuedekoratører under@descriptiondekoratø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 = 1Lagre 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.
På Terminal-menyen velger du Ny terminal. Terminalvinduet åpnes vanligvis i nedre halvdel av skjermen.
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.
Hvis det vises et annet skall enn bash , velger du rullegardinpilen for skallet, og deretter velger du Git Bash.
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
Logg på Azure i Visual Studio Code-terminalen ved å kjøre følgende kommando:
az loginLogg på Azure-kontoen i nettleseren som åpnes.
Visual Studio Code-terminalen viser en liste over abonnementene som er knyttet til denne kontoen.
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 tableAngi 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.
På Terminal-menyen velger du Ny terminal. Terminalvinduet åpnes vanligvis i nedre halvdel av skjermen.
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.
Hvis et annet skall enn pwsh eller powershell vises, velger du rullegardinpilen for skallet, og deretter velger du PowerShell.
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
Logg på Azure i Visual Studio Code-terminalen ved å kjøre følgende kommando:
Connect-AzAccountLogg på Azure-kontoen i nettleseren som åpnes.
Få ID-en for abonnementet du vil bruke for denne øvelsen, ved å kjøre følgende kommando:
Get-AzSubscriptionAbonnements-ID-en er den andre kolonnen. Kopier den andre kolonnen. Det ser omtrent ut som aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.
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
Gå til Azure-portalen og sørg for at du er i riktig abonnement.
I panelet til venstre velger du Ressursgrupper.
Velg navnet på ressursgruppen.
I Oversikt kan du se at én distribusjon var vellykket.
Velg 1 Vellykket for å se detaljene for distribusjonen.
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.
På menyen til venstre velger du Inndata.
Legg merke til at parameterne og verdiene er oppført.
La siden være åpen i nettleseren. Du sjekker distribusjoner på nytt senere.