Övning – Lägga till parametrar och dekoratörer
Anmärkning
Den här övningen är valfri. Om du vill slutföra den här övningen måste du skapa en Azure-prenumeration innan du börjar. Om du inte har något Azure-konto eller om du inte vill skapa ett för tillfället kan du läsa igenom anvisningarna så att du förstår den information som visas.
Anmärkning
Du måste använda en resursgrupp för att slutföra stegen i den här övningen. Du kan använda en resursgrupp som du redan har skapat eller skapa en ny resursgrupp specifikt för den här övningen. Om du väljer att skapa en ny resursgrupp blir det enklare att rensa alla resurser som du skapar när du slutför övningen. Om du inte har någon befintlig resursgrupp eller om du vill skapa en ny specifikt för den här övningen kan du följa stegen i Använda Azure-portalen och Azure Resource Manager för att hantera resursgrupper för att skapa en resursgrupp med hjälp av Azure-portalen, eller så kan du följa stegen i Hantera Azure-resursgrupper med hjälp av Azure CLI för att skapa en resursgrupp med hjälp av Azure CLI.
Som en del av hr-programmigreringen skapar du en Bicep-mall för att distribuera Azure-resurser. I den här övningen skapar du en Azure App Service-plan och En App Service-app. Du använder dekoratörer för varje parameter för att säkerställa att de alltid innehåller de värden som du förväntar dig.
Under processen utför du följande uppgifter:
- Skapa en Bicep-fil som innehåller parametrar och variabler.
- Lägg till dekoratörer i parametrarna.
- Testa distributionen för att säkerställa att mallen är giltig.
Den här övningen använder Bicep-tillägget för Visual Studio Code. Se till att installera det här tillägget i Visual Studio Code.
Skapa en Bicep-mall med parametrar
Öppna Visual Studio Code.
Skapa en ny fil med namnet main.bicep.
Spara den tomma filen så att Visual Studio Code laddar Bicep-verktyget.
Du kan antingen välja Spara som-fil> eller välja Ctrl+S i Windows (⌘+S på macOS). Kom ihåg var du har sparat filen. Du kanske till exempel vill skapa en skript mapp för att spara den.
Lägg till följande innehåll i filen. Du kommer snart att distribuera mallen. Ange innehållet själv i stället för att kopiera och klistra in så att du kan se hur verktygen hjälper dig att skriva dina 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 skapar flera parametrar här och de använder en blandning av typer. Du definierar standardvärden för varje parameter. Några av standardvärdena är stränginterpolation och
uniqueString()funktionen.Tips/Råd
Funktionen
uniqueString()är användbar för att skapa globalt unika resursnamn. Den returnerar en sträng som är densamma för varje distribution till samma resursgrupp, men som skiljer sig när du distribuerar till olika resursgrupper eller prenumerationer.Du definierar också variabler som konstruerar namnen på Azure App Service-planen och App Service-appen. Deras värden innehåller några av de parametrar som du har angett. Parametervärden kan åsidosättas av användaren som kör distributionen, men värdena för variablerna kan inte åsidosättas.
I filen main.bicep i Visual Studio Code lägger du till följande kod längst ned 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 } }Observera att resurserna använder värdena för de parametrar som du definierade.
Spara ändringarna i filen.
Lägga till parameterbeskrivningar
I filen main.bicep i Visual Studio Code lägger du till dekoratören
@descriptiondirekt ovanför varje parameter som du skapade i föregående uppgift. Parametrarna bör se ut ungefär som i det här exemplet:@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'Spara ändringarna i filen.
Begränsa indatavärden
Leksaksföretaget distribuerar HR-programmet till tre miljöer: dev, testoch prod. Du begränsar parametern environmentName till att endast tillåta dessa tre värden.
Leta reda på parametern
environmentNamei Visual Studio Code. Infoga en@alloweddekoratör under dess@descriptiondekoratör. När du är klar bör parametern se ut så här:@description('The name of the environment. This must be dev, test, or prod.') @allowed([ 'dev' 'test' 'prod' ]) param environmentName string = 'dev'Observera att du begränsar parametervärdet för
environmentNameparametern till endastdev,testochprod. Om fler miljöer läggs till i framtiden måste du uppdatera den här listan.Spara ändringarna i filen.
Begränsa indatalängder
Parametern solutionName används för att generera namnen på resurser. Du vill framtvinga en minsta längd på 5 tecken och en maximal längd på 30 tecken.
Leta reda på parametern
solutionNamei Visual Studio Code. Lägg till@minLengthoch@maxLengthdekoratörer under dekoratören@description. När du är klar bör parametern se ut så här:@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)}'Spara ändringarna i filen.
Begränsa numeriska värden
Därefter ser du till att parametern appServicePlanInstanceCount endast tillåter värden mellan 1 och 10.
Leta reda på parametern
appServicePlanInstanceCounti Visual Studio Code. Lägg till@minValueoch@maxValuedekoratörer under dekoratören@description. När du är klar bör parametern se ut så här:@description('The number of App Service plan instances.') @minValue(1) @maxValue(10) param appServicePlanInstanceCount int = 1Spara ändringarna i filen.
Verifiera Bicep-filen
När du har slutfört alla föregående ändringar bör Bicep-filen se ut så här:
@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
}
}
Om den inte gör det kopierar du antingen exemplet eller justerar mallen så att den matchar exemplet.
Distribuera Bicep-mallen till Azure
För att distribuera mallen till Azure behöver du logga in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure CLI-verktygen .
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Om terminalfönstret visar bash på höger sida innebär det att rätt gränssnitt redan är öppet. Om du ser en bash shell-ikon till höger kan du välja den för att starta gränssnittet.
Om ett annat gränssnitt än bash visas väljer du listrutepilen för gränssnittet och väljer sedan Git Bash.
I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:
cd templates
Installera Bicep
Kör följande kommando för att se till att du har den senaste versionen av Bicep:
az bicep install && az bicep upgrade
Logga in på Azure med hjälp av Azure CLI
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
az loginLogga in på ditt Azure-konto i webbläsaren som öppnas.
Visual Studio Code-terminalen visar en lista över de prenumerationer som är associerade med det här kontot.
Leta upp den prenumeration som du vill använda för den här övningen i listan.
Om du missade listan från inloggningen kan du använda följande kodfragment för att lista dina prenumerationer igen.
az account list --output tableAnge standardprenumerationen för alla Azure CLI-kommandon som du kör i den här sessionen.
az account set --subscription "Your Subscription Name or ID"
Distribuera mallen till Azure med hjälp av Azure CLI
Kör följande kod från terminalen i Visual Studio Code för att distribuera Bicep-mallen till Azure. Du behöver inte ange parametervärdena eftersom standardvärdena har angetts. Den här processen kan ta en minut eller två att slutföra och sedan visas en lyckad distribution.
az deployment group create --name main --template-file main.bicep
Du ser Running... i terminalen.
Om du vill distribuera den här mallen till Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att du har installerat Azure PowerShell.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Om terminalfönstret visar pwsh eller powershell till höger betyder det att rätt gränssnitt redan är öppet. Om du ser en PowerShell-gränssnittsikon till höger kan du också välja den för att starta gränssnittet.
Om ett annat skal än pwsh eller powershell visas, välj skalets listrutepil och välj sedan PowerShell.
I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:
Set-Location -Path templates
Installera Bicep CLI
Om du vill använda Bicep från Azure PowerShell installerar du Bicep CLI.
Logga in i Azure med Azure PowerShell
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
Connect-AzAccountLogga in på ditt Azure-konto i webbläsaren som öppnas.
Hämta ID:t för den prenumeration som du vill använda för den här övningen genom att köra följande kommando:
Get-AzSubscriptionPrenumerations-ID är den andra kolumnen. Kopiera den andra kolumnen. Det ser ut ungefär som aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e.
Ange standardprenumerationen för alla Azure PowerShell-kommandon som du kör i den här sessionen.
Set-AzContext -SubscriptionId {Your subscription ID}
Distribuera mallen till Azure med hjälp av PowerShell
Distribuera mallen till Azure med hjälp av följande Azure PowerShell-kommando i terminalen. Du behöver inte ange parametervärdena eftersom standardvärdena har angetts. Den här processen kan ta en minut eller två att slutföra och sedan visas en lyckad distribution.
New-AzResourceGroupDeployment -Name main -TemplateFile main.bicep
Verifiera din distribution
Gå till Azure-portalen och kontrollera att du har rätt prenumeration.
På den vänstra panelen väljer du Resursgrupper.
Välj resursgruppens namn.
I Översikt kan du se att en distribution lyckades.
Välj 1 Lyckades för att se information om distributionen.
Välj den distribution som kallas main för att se vilka resurser som har distribuerats och välj sedan Distributionsinformation för att expandera den. I det här fallet finns det en App Service-plan och app.
Välj Indata i menyn till vänster.
Observera att parametrarna och deras värden visas.
Lämna sidan öppen i webbläsaren. Du går tillbaka till distributionerna senare.