Oefening: modules uit uw register gebruiken
In de vorige oefening hebt u de CDN- en websitemodules gepubliceerd in het register van uw speelgoedbedrijf. Nu wilt u het team laten zien dat de speelgoedhond ontwikkelt hoe u de modules gebruikt voor een eigen implementatie.
In deze oefening gaat u het volgende doen:
- Maak een Bicep-bestand dat modules uit uw privéregister bevat.
- Voeg verwijzingen toe naar de modules in het register.
- Bouw en inspecteer het Bicep-bestand om te begrijpen hoe het herstelproces van de module werkt.
- Schakel over naar het gebruik van een registeralias.
- Implementeer uw Bicep-bestand in Azure.
Een Bicep-bestand maken
Maak in Visual Studio Code een nieuw bestand met de naam main.bicep.
Sla het lege bestand op zodat Visual Studio Code de Bicep-hulpprogramma's laadt.
U kunt Bestand>opslaan als selecteren of Ctrl+S selecteren in Windows (⌘+S in macOS). Vergeet niet waar u het bestand opslaat. U kunt bijvoorbeeld een map met sjablonen maken om deze op te slaan in.
De modules toevoegen aan het Bicep-bestand
Voeg in het bestand main.bicep de volgende parameters en variabelen toe:
@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'
Gebruik onder de parameters en variabelen de volgende code om de websitemodule toe te voegen vanuit uw register. Vervang door
YOUR_CONTAINER_REGISTRY_NAME
de naam van uw privé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 } }
Bicep toont rode golvende lijnen onder de module-id wanneer u begint te typen, maar dan gaan de golvende lijnen weg. Dit gedrag treedt op omdat de Bicep-extensie voor Visual Studio Code de module uit het register leest en opslaat in uw lokale bestandssysteem.
Gebruik onder de module die u hebt gemaakt de volgende code om de CDN-module toe te voegen vanuit uw register. Vervang door
YOUR_CONTAINER_REGISTRY_NAME
de naam van uw privéregister.module cdn 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Sla het bestand op.
Uw Bicep-bestand bouwen en inspecteren
Hier bouwt u het Bicep-bestand op een JSON ARM-sjabloon. Normaal gesproken hoeft u geen build uit te voeren, maar het is handig wanneer u leert hoe modules werken.
Voer in de Visual Studio Code-terminal de volgende opdracht uit om het Bicep-bestand te bouwen naar een JSON-bestand:
az bicep build --file main.bicep
Bicep maakt een bestand met de naam main.json in dezelfde map als het bestand main.bicep .
Open het bestand main.json .
Zoals u ziet, hebben sommige resources het type
Microsoft.Resources/deployments
in deresources
sectie van de JSON ARM-sjabloon, te beginnen rond regel 134. Deze resources vertegenwoordigen de module-implementaties die zijn gedefinieerd in de module die u uit het register hebt toegevoegd.
Voer in de Visual Studio Code-terminal de volgende opdracht uit om het Bicep-bestand te bouwen naar een JSON-bestand:
bicep build main.bicep
Bicep maakt een bestand met de naam main.json in dezelfde map als het bestand main.bicep .
Open het bestand main.json .
Zoals u ziet, hebben sommige resources het type
Microsoft.Resources/deployments
in deresources
sectie van de JSON ARM-sjabloon, te beginnen rond regel 134. Deze resources vertegenwoordigen de module-implementaties die zijn gedefinieerd in de module die u uit het register hebt toegevoegd.
Een registeralias maken
U besluit een registeralias te maken in plaats van de register-URL in te sluiten in uw Bicep-bestand. Deze methode maakt het Bicep-bestand gemakkelijker te lezen.
Maak in Visual Studio Code een nieuw bestand met de naam bicepconfig.json. Maak deze in dezelfde map als het bestand main.bicep .
Plak de volgende code in het bestand bicepconfig.json . Vervang door
YOUR_CONTAINER_REGISTRY_NAME
de naam van uw privéregister.{ "moduleAliases": { "br": { "ToyCompanyRegistry": { "registry": "YOUR_CONTAINER_REGISTRY_NAME.azurecr.io" } } } }
Sla het bestand op.
De registeralias gebruiken
Hier werkt u uw Bicep-bestand bij om de registeralias te gebruiken in plaats van rechtstreeks naar het register te verwijzen.
Open het bestand main.bicep .
Zoek de definitie van de
website
module en wijzig de definitie zodat deze de registeralias bevat:module website 'br/ToyCompanyRegistry:website:v1' = { name: 'toy-dog-website' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
Tip
Zorg ervoor dat u het begin van het modulepad wijzigt van
br:
inbr/
. Wijzig daarnaToyCompanyRegistry
ook het teken slash (/
) in een dubbele punt (:
).Breng een vergelijkbare wijziging aan in de
cdn
module:module cdn 'br/ToyCompanyRegistry:cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Sla het bestand op.
Uw Bicep-bestand controleren
Nadat u alle voorgaande wijzigingen hebt voltooid, moet het bestand main.bicep er als volgt uitzien:
@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
}
}
Als het bestand niet overeenkomt, kopieert u het voorbeeld of past u de sjabloon aan zodat het overeenkomt met het voorbeeld.
Implementeren op Azure
Implementeer de sjabloon in de Visual Studio Code-terminal in Azure door de volgende opdracht uit te voeren. Dit proces kan enkele minuten duren om een geslaagde implementatie te voltooien.
az deployment group create \
--template-file main.bicep
New-AzResourceGroupDeployment -TemplateFile main.bicep
De implementatie controleren
Ga naar Azure Portal en zorg ervoor dat u zich in het sandbox-abonnement bevindt:
- Selecteer uw avatar in de rechterbovenhoek van de pagina.
- Selecteer Schakelen tussen directory's. In de lijst kiest u de map Microsoft Learn Sandbox.
Selecteer Resourcegroepen in het linkerdeelvenster.
Selecteer
[naam sandboxresourcegroep] .Selecteer Implementaties in het linkermenu.
U ziet dat er drie implementaties worden vermeld:
- main vertegenwoordigt de implementatie van uw bovenliggende Bicep-bestand.
- speelgoed-dog-cdn en speelgoedhond-website vertegenwoordigen de modules die u in uw main.bicep-bestand hebt opgenomen.
Selecteer de hoofdimplementatie en vouw implementatiedetails uit.
U ziet dat beide modules worden weergegeven en dat hun typen worden weergegeven als
Microsoft.Resources/deployments
. Detoy-dog-website
module wordt twee keer weergegeven omdat er ook naar de uitvoer in de sjabloon wordt verwezen.Selecteer de implementaties van speelgoed-dog-cdn en speelgoedhondenwebsites en bekijk de resources die in elke site zijn geïmplementeerd. U ziet dat ze overeenkomen met de resources die zijn gedefinieerd in de respectieve modules.