Använda en modul från ett privat register
Du har lärt dig hur du publicerar moduler i ett privat register. I den här lektionen får du lära dig hur du använder moduler som redan finns i ett register som en del av en Bicep-mall.
Använda en Bicep-modul
När du har hittat en modul som du vill använda skapar du en moduldefinition i Bicep-mallen. Här är ett exempel:
module myModule 'br:myregistry.azurecr.io/modulepath/modulename:moduleversion' = {
name: 'my-module'
params: {
moduleParameter1: 'value'
}
}
Observera att moduldefinitionen liknar den för en lokal modul, men med en viktig skillnad. I stället för att ange sökvägen till en Bicep-fil i filsystemet tar du med sökvägen till modulen i registret.
När du har lagt till en referens till modulen försöker Visual Studio Code automatiskt ladda ned modulen från registret. När modulen laddas ned ger Bicep-tillägget för Visual Studio Code intelliSense och annan kodredigeringshjälp när du arbetar.
Alias
Du kan använda ett registeralias för att förenkla dina moduldefinitioner. I stället för att ange registernamnet varje gång du definierar en modul använder du dess alias. Alias hjälper dig på några sätt:
- De kan hålla din Bicep-fil snyggare och hjälpa dig att undvika att skriva det fullständiga namnet på registret upprepade gånger.
- Om du byter till ett nytt register i framtiden kan du uppdatera aliaset i stället för att uppdatera varje referens till det.
- Vissa organisationer behöver använda olika register för olika situationer, till exempel för utvecklings- och produktionsmiljöer. Du kan växla det register som ett alias refererar till genom att ändra en konfigurationsfil. Ändringen gäller sedan för alla Bicep-filer i mappen.
För att definiera ett alias måste du skapa en bicepconfig.json-fil i samma mapp som din Bicep-fil. I filen bicepconfig.json definierar du alias som i det här exemplet:
{
"moduleAliases": {
"br": {
"MyRegistry": {
"registry": "myregistry.azurecr.io"
}
}
}
}
När du definierar en modul i en Bicep-fil använder du en något annorlunda typ av modulsökväg, som innehåller aliaset:
module myModule 'br/MyRegistry:bicep/my-module:v1' = {
// ...
}
Dricks
Observera att början av sökvägen är br/
när du använder ett alias och br:
när du inte gör det.
Ett alias kan också innehålla sökvägen till dina moduler i registret, vilket är användbart om du använder ett vanligt prefix för dina moduler:
{
"moduleAliases": {
"br": {
"MyRegistryWithPath": {
"registry": "myregistry.azurecr.io",
"modulePath": "bicep"
}
}
}
}
Sedan kan du utelämna sökvägen när du definierar modulen i Bicep-filen:
module myModule 'br/MyRegistryWithPath:my-module:v1' = {
// ...
}
Skapa din Bicep-fil
När du är redo att distribuera Bicep-filen distribuerar du den precis som vanligt. Bicep laddar ned modulen från registret automatiskt som en del av distributionsprocessen. Bicep bäddar in alla moduler som du refererar till i den transpilerade ARM-mallen, som är en JSON-fil.
Du kan också separera nedladdningsprocessen för modulen från bygget med hjälp bicep restore
av kommandot . Du kan sedan använda bicep build
kommandot med --no-restore
kommandoradsväxeln för att stoppa byggprocessen från att ladda ned modulen. I allmänhet behöver du dock inte separera moduler och låta Bicep ladda ned modulerna automatiskt.