Skapa ett privat register för Bicep-moduler

Om du vill dela moduler i din organisation kan du skapa ett privat modulregister. Du publicerar moduler till registret och ger läsbehörighet till användare som behöver distribuera modulerna. När modulerna har delats i registren kan du referera till dem från dina Bicep-filer. Information om hur du bidrar till registret över offentliga moduler finns i bidragsguiden.

Om du vill arbeta med modulregister måste du ha Bicep CLI version 0.4.1008 eller senare. Om du vill använda med Azure CLI måste du också ha version 2.31.0 eller senare. Om du vill använda med Azure PowerShell måste du också ha version 7.0.0 eller senare.

Utbildningsresurser

Om du hellre vill lära dig mer om parametrar via stegvis vägledning kan du läsa Dela Bicep-moduler med hjälp av privata register.

Konfigurera privat register

Ett Bicep-register finns i Azure Container Registry (ACR). Använd följande steg för att konfigurera registret för moduler.

  1. Om du redan har ett containerregister kan du använda det. Om du behöver skapa ett containerregister läser du Snabbstart: Skapa ett containerregister med hjälp av en Bicep-fil.

    Du kan använda någon av de tillgängliga register-SKU:erna för modulregistret. Med geo-replikering i registret får användarna en lokal närvaro eller som en frekvent säkerhetskopiering.

  2. Hämta inloggningsserverns namn. Du behöver det här namnet när du länkar till registret från dina Bicep-filer. Formatet för inloggningsserverns namn är: <registry-name>.azurecr.io.

    Om du vill hämta inloggningsserverns namn använder du Get-AzContainerRegistry.

    Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>"  | Select-Object LoginServer
    
  3. Om du vill publicera moduler till ett register måste du ha behörighet att skicka en avbildning. Om du vill distribuera en modul från ett register måste du ha behörighet att hämta avbildningen. Mer information om de roller som ger tillräcklig åtkomst finns i Roller och behörigheter för Azure Container Registry.

  4. Beroende på vilken typ av konto du använder för att distribuera modulen kan du behöva anpassa vilka autentiseringsuppgifter som används. Dessa autentiseringsuppgifter krävs för att hämta modulerna från registret. Som standard hämtas autentiseringsuppgifter från Azure CLI eller Azure PowerShell. Du kan anpassa prioriteten för att hämta autentiseringsuppgifterna i filen bicepconfig.json . Mer information finns i Autentiseringsuppgifter för att återställa moduler.

Viktigt!

Det privata containerregistret är endast tillgängligt för användare med nödvändig åtkomst. Den nås dock via det offentliga internet. För mer säkerhet kan du kräva åtkomst via en privat slutpunkt. Se Anslut privat till ett Azure-containerregister med hjälp av Azure Private Link.

Det privata containerregistret måste ha principen azureADAuthenticationAsArmPolicy inställd på enabled. Om azureADAuthenticationAsArmPolicy är inställt på disabledfår du ett felmeddelande om 401 (obehörig) när du publicerar moduler. Se Azure Container Registry introducerar principen för villkorsstyrd åtkomst.

Publicera filer i registret

När du har konfigurerat containerregistret kan du publicera filer till det. Använd publiceringskommandot och ange alla Bicep-filer som du tänker använda som moduler. Ange målplatsen för modulen i registret. Publiceringskommandot skapar en ARM-mall som lagras i registret. Det innebär att om du publicerar en Bicep-fil som refererar till andra lokala moduler, expanderas dessa moduler fullständigt som en JSON-fil och publiceras i registret.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html

Visa filer i registret

Så här ser du den publicerade modulen i portalen:

  1. Logga in på Azure-portalen.

  2. Sök efter containerregister.

  3. Välj ditt register.

  4. Välj Lagringsplatser på den vänstra menyn.

  5. Välj modulsökvägen (lagringsplatsen). I föregående exempel är namnet på modulsökvägen bicep/modules/storage.

  6. Välj taggen. I föregående exempel är taggen v1.

  7. Artefaktreferensen matchar referensen som du ska använda i Bicep-filen.

    Bicep module registry artifact reference

Nu är du redo att referera till filen i registret från en Bicep-fil. Exempel på syntaxen som ska användas för att referera till en extern modul finns i Bicep-moduler.


Arbeta med Bicep-registerfiler

När du använder bicep-filer som finns i ett fjärrregister är det viktigt att du förstår hur den lokala datorn interagerar med registret. När du först deklarerar referensen till registret försöker den lokala redigeraren kommunicera med Azure Container Registry och ladda ned en kopia av registret till din lokala cache.

Den lokala cachen finns i:

  • På Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • I Linux

    /home/<username>/.bicep
    
  • På Mac

    ~/.bicep
    

Ändringar som görs i fjärrregistret identifieras inte av den lokala datorn förrän en restore har körts med den angivna filen som innehåller registerreferensen.

az bicep restore --file <bicep-file> [--force]

Mer information finns i restore kommandot .

Nästa steg