Övning – Använda moduler från registret
I föregående övning publicerade du CDN- och webbplatsmodulerna till leksaksföretagets register. Nu vill du visa teamet som utvecklar leksakshunden hur de ska använda modulerna för sin egen distribution.
I den här övningen kommer du att:
- Skapa en Bicep-fil som innehåller moduler från ditt privata register.
- Lägg till referenser till modulerna i registret.
- Skapa och inspektera Bicep-filen för att förstå hur modulåterställningsprocessen fungerar.
- Växla till att använda ett registeralias.
- Distribuera Bicep-filen till Azure.
Skapa en Bicep-fil
Skapa en ny fil med namnet main.bicep i Visual Studio Code.
Spara den tomma filen så att Visual Studio Code läser in 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 sparar filen. Du kanske till exempel vill skapa en mallmapp för att spara den.
Lägg till modulerna i Bicep-filen
Lägg till följande parametrar och variabler i filen main.bicep:
@description('The Azure region into which the resources should be deployed.') param location string = 'westus3' @description('The name of the App Service app.') param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}' @description('The name of the App Service plan SKU.') param appServicePlanSkuName string = 'F1' var appServicePlanName = 'toy-dog-plan'
Under parametrarna och variablerna använder du följande kod för att lägga till webbplatsmodulen från registret. Ersätt
YOUR_CONTAINER_REGISTRY_NAME
med namnet på ditt privata register.module website 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/website:v1' = { name: 'toy-dog-website' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
Observera att Bicep visar röda vågiga linjer under modulidentifieraren när du börjar skriva, men sedan försvinner de vågiga raderna. Det här beteendet inträffar eftersom Bicep-tillägget för Visual Studio Code läser modulen från registret och sparar den i det lokala filsystemet.
Under modulen som du skapade använder du följande kod för att lägga till CDN-modulen från registret. Ersätt
YOUR_CONTAINER_REGISTRY_NAME
med namnet på ditt privata register.module cdn 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Spara filen.
Skapa och inspektera Bicep-filen
Här skapar du Bicep-filen till en JSON ARM-mall. Normalt behöver du inte göra en version, men det är användbart när du lär dig hur moduler fungerar.
I Visual Studio Code-terminalen kör du följande kommando för att skapa Bicep-filen till en JSON-fil:
az bicep build --file main.bicep
Bicep skapar en fil med namnet main.json i samma mapp som main.bicep-filen .
Öppna filen main.json .
Observera att i avsnittet i
resources
JSON ARM-mallen, som börjar runt rad 134, har vissa resurser typenMicrosoft.Resources/deployments
. Dessa resurser representerar de moduldistributioner som definierades i modulen som du lade till från registret.
I Visual Studio Code-terminalen kör du följande kommando för att skapa Bicep-filen till en JSON-fil:
bicep build main.bicep
Bicep skapar en fil med namnet main.json i samma mapp som main.bicep-filen .
Öppna filen main.json .
Observera att i avsnittet i
resources
JSON ARM-mallen, som börjar runt rad 134, har vissa resurser typenMicrosoft.Resources/deployments
. Dessa resurser representerar de moduldistributioner som definierades i modulen som du lade till från registret.
Skapa ett registeralias
Du bestämmer dig för att skapa ett registeralias i stället för att bädda in register-URL:en i Bicep-filen. Den här metoden gör Bicep-filen enklare att läsa.
Skapa en ny fil med namnet bicepconfig.json i Visual Studio Code. Skapa den i samma mapp som main.bicep-filen .
Klistra in följande kod i filen bicepconfig.json . Ersätt
YOUR_CONTAINER_REGISTRY_NAME
med namnet på ditt privata register.{ "moduleAliases": { "br": { "ToyCompanyRegistry": { "registry": "YOUR_CONTAINER_REGISTRY_NAME.azurecr.io" } } } }
Spara filen.
Använda registeraliaset
Här uppdaterar du Bicep-filen för att använda registeraliaset i stället för att referera direkt till registret.
Öppna filen main.bicep.
Leta reda på definitionen av modulen
website
och ändra definitionen så att den inkluderar registeraliaset:module website 'br/ToyCompanyRegistry:website:v1' = { name: 'toy-dog-website' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
Dricks
Se till att ändra början av modulsökvägen från
br:
tillbr/
.ToyCompanyRegistry
Efter ändrar du också snedstreckstecknet (/
) till ett kolon (:
).Gör en liknande ändring i modulen
cdn
:module cdn 'br/ToyCompanyRegistry:cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Spara filen.
Verifiera Bicep-filen
När du har slutfört alla föregående ändringar bör filen main.bicep se ut så här:
@description('The Azure region into which the resources should be deployed.')
param location string = 'westus3'
@description('The name of the App Service app.')
param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}'
@description('The name of the App Service plan SKU.')
param appServicePlanSkuName string = 'F1'
var appServicePlanName = 'toy-dog-plan'
module website 'br/ToyCompanyRegistry:website:v1' = {
name: 'toy-dog-website'
params: {
appServiceAppName: appServiceAppName
appServicePlanName: appServicePlanName
appServicePlanSkuName: appServicePlanSkuName
location: location
}
}
module cdn 'br/ToyCompanyRegistry:cdn:v1' = {
name: 'toy-dog-cdn'
params: {
httpsOnly: true
originHostName: website.outputs.appServiceAppHostName
}
}
Om filen inte matchar kopierar du exemplet eller justerar mallen så att den matchar exemplet.
Distribuera till Azure
I Visual Studio Code-terminalen distribuerar du mallen till Azure genom att köra följande kommando. Den här processen kan ta några minuter att slutföra en lyckad distribution.
az deployment group create \
--template-file main.bicep
New-AzResourceGroupDeployment -TemplateFile main.bicep
Verifiera distributionen
Gå till Azure Portal och kontrollera att du är i sandbox-prenumerationen:
- Välj din avatar i det övre högra hörnet på sidan.
- Välj Växla katalog. Välj katalogen Sandbox-miljö för Microsoft Learn i listan.
På den vänstra panelen väljer du Resursgrupper.
Välj
[resursgruppsnamn för sandbox-miljö] .Välj Distributioner på den vänstra menyn.
Observera att tre distributioner visas:
- main representerar distributionen av den överordnade Bicep-filen.
- toy-dog-cdn och toy-dog-website representerar de moduler som du inkluderade i filen main.bicep .
Välj huvuddistributionen och expandera Distributionsinformation.
Observera att båda modulerna visas och att deras typer visas som
Microsoft.Resources/deployments
. Modulentoy-dog-website
visas två gånger eftersom dess utdata också refereras i mallen.Välj distributionerna toy-dog-cdn och toy-dog-website och granska de resurser som distribueras i var och en. Observera att de motsvarar de resurser som definierats i respektive moduler.