Creare un registro privato per i moduli Bicep

Per condividere moduli all'interno dell'organizzazione, è possibile creare un registro privato per i moduli. È possibile pubblicare moduli in quel registro e consentire l'accesso in lettura agli utenti che devono distribuire i moduli. Dopo aver condiviso i moduli nei registri, è possibile farvi riferimento dai file Bicep. Per contribuire al registro pubblico dei moduli, vedere la guida ai contributi.

Per lavorare con i registri dei moduli, è necessario avere l'interfaccia della riga di comando di Bicep versione 0.4.1008 o successiva. Per l’uso con l'interfaccia della riga di comando di Azure, è necessario avere anche la versione 2.31.0 o successiva. Per l’uso con Azure PowerShell, è necessario avere anche la versione 7.0.0 o successiva.

Risorse di formazione

Per avere informazioni più dettagliate sui parametri, vedere Condividere moduli Bicep usando registri privati.

Configurare il Registro di sistema privato

Un registro Bicep è ospitato sul Registro Azure Container. Usare la procedura seguente per configurare il registro per i moduli.

  1. Se si dispone già di un registro contenitori, è possibile usarlo. Se è necessario creare un registro contenitori, vedere Avvio rapido: Creare un registro contenitori usando un file Bicep.

    È possibile usare uno qualsiasi degli SKU del registro disponibili per il registro per i moduli. La replica geografica del registro fornisce agli utenti una presenza locale o un backup ad accesso frequente.

  2. Ottenere il nome del server di accesso. Questo nome è necessario per il collegamento al registro dai file Bicep. Il formato del nome del server di accesso è: <registry-name>.azurecr.io.

    Per ottenere il nome del server di accesso, usare Get-AzContainerRegistry.

    Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>"  | Select-Object LoginServer
    
  3. Per pubblicare moduli in un registro, è necessario disporre dell'autorizzazione per eseguire il push di un'immagine. Per distribuire un modulo da un registro, è necessario disporre dell'autorizzazione per eseguire il pull dell'immagine. Per altre informazioni sui ruoli che concedono un accesso adeguato, vedere Ruoli e autorizzazioni di Registro Azure Container.

  4. A seconda del tipo di account usato per distribuire il modulo, potrebbe essere necessario personalizzare le credenziali usate. Queste credenziali sono necessarie per ottenere i moduli dal registro. Per impostazione predefinita, le credenziali vengono ottenute dall'interfaccia della riga di comando di Azure o da Azure PowerShell. È possibile personalizzare la precedenza per ottenere le credenziali nel file bicepconfig.json . Per altre informazioni, vedere Credenziali per il ripristino dei moduli.

Importante

Il registro contenitori privato è disponibile solo per gli utenti con l'accesso richiesto. Tuttavia, è accessibile tramite la rete Internet pubblica. Per una maggiore sicurezza, è possibile richiedere l'accesso tramite un endpoint privato. Vedere Connettersi privatamente a un registro contenitori di Azure usando il collegamento privato di Azure.

Il registro contenitori privato deve avere il criterio azureADAuthenticationAsArmPolicy impostato su enabled. Se azureADAuthenticationAsArmPolicy è impostato su disabled, verrà visualizzato un messaggio di errore 401 (non autorizzato) durante la pubblicazione dei moduli. Vedere Il registro contenitori di Azure introduce i criteri di accesso condizionale.

Pubblicare file nel registro

Dopo aver configurato il registro contenitori, è possibile pubblicarvi i file. Usare il comando publish e specificare tutti i file Bicep che si intende usare come moduli. Specificare la posizione di destinazione per il modulo nel registro. Il comando publish creerà un modello di ARM che verrà archiviato nel registro. Ciò significa che, se si pubblica un file Bicep che fa riferimento ad altri moduli locali, questi moduli verranno espansi completamente come un file JSON e pubblicati nel registro.

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

Visualizzare i file nel registro

Per visualizzare il modulo pubblicato nel portale:

  1. Accedere al portale di Azure.

  2. Cercare registri contenitori.

  3. Selezionare il registro.

  4. Selezionare Repository dal menu a sinistra.

  5. Selezionare il percorso del modulo (repository). Nell'esempio precedente il nome del percorso del modulo è bicep/modules/storage.

  6. Seleziona il tag. Nell'esempio precedente il tag è v1.

  7. Il riferimento artefatto corrisponde al riferimento che verrà usato nel file Bicep.

    Bicep module registry artifact reference

È ora possibile fare riferimento al file nel registro da un file Bicep. Per esempi della sintassi da usare per fare riferimento a un modulo esterno, vedere Moduli Bicep.


Lavorare con i file del registro Bicep

Quando ci si avvale di file bicep ospitati in un registro remoto, è importante comprendere in che modo il computer locale interagirà con il registro. Quando si dichiara per la prima volta il riferimento al registro, l'editor locale tenterà di comunicare con il registro contenitori di Azure e di scaricare una copia del registro nella cache locale.

La cache locale si trova in:

  • In Windows

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

    /home/<username>/.bicep
    
  • Su Mac:

    ~/.bicep
    

Tutte le modifiche apportate al registro remoto non verranno riconosciute dal computer locale finché non viene eseguito un restore con il file specificato che include il riferimento al registro.

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

Per ulteriori informazioni, vedere il comando restore.

Passaggi successivi