Använda en modul från ett privat register

Slutförd

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.