Creare un registro privato per i moduli Bicep

Per condividere moduli all'interno dell'organizzazione, è possibile creare un registro privato per i moduli. È quindi 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 usare i moduli pubblici, vedere Moduli Bicep.

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 Pubblica crea un modello di Resource Manager archiviato nel Registro di sistema. 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

Con l'interfaccia della riga di comando di Bicep versione 0.27.1 o successiva, è possibile pubblicare un modulo con il codice sorgente Bicep oltre al modello JSON compilato. Se un modulo viene pubblicato con il codice sorgente Bicep in un Registro di sistema, è possibile premere F12 (Vai a definizione) da Visual Studio Code per visualizzare il codice Bicep. L'estensione Bicep versione 0.27 o più recente è necessaria per visualizzare il file Bicep.

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

Con l'opzione di origine viene visualizzato un altro livello nel manifesto:

Screenshot del registro del modulo bicep con origine.

Se il modulo Bicep fa riferimento a un modulo in un registro privato, l'endpoint del Registro Azure Container è visibile. Per nascondere l'endpoint completo, è possibile configurare un alias per il Registro di sistema privato.

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 Servizi ->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.

    Riferimento all'artefatto del registro del modulo Bicep

È 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 Azure Container 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
    

Il computer locale può riconoscere tutte le modifiche apportate al Registro di sistema remoto fino a quando non si esegue un restore con il file specificato che include il riferimento al Registro di sistema.

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

Per ulteriori informazioni, vedere il comando restore.

Passaggi successivi