Esercizio - Pubblicare un modulo nel registro

Completato

È stato creato registro privato per l'uso da parte dell'azienda di giocattoli. In questo esercizio si eseguiranno le seguenti operazioni:

  • Creare un modulo per le risorse del sito Web.
  • Creare un altro modulo per le risorse nella rete CDN.
  • Pubblicare i moduli nel registro.
  • Elencare i moduli nel registro.

In questo esercizio viene usata l'estensione Bicep per Visual Studio Code. Assicurarsi di installare questa estensione in Visual Studio Code.

Creare un modulo per un sito Web

In precedenza è stato creato un modulo che distribuisce un sito Web. Qui verrà salvato il file del modulo in modo da poterlo pubblicare.

  1. Aprire Visual Studio Code.

  2. Creare un nuovo file denominato website.bicep.

  3. Copiare il codice seguente nel file website.bicep:

    @description('The Azure region into which the resources should be deployed.')
    param location string
    
    @description('The name of the App Service app.')
    param appServiceAppName string
    
    @description('The name of the App Service plan.')
    param appServicePlanName string
    
    @description('The name of the App Service plan SKU.')
    param appServicePlanSkuName string
    
    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: appServicePlanSkuName
      }
    }
    
    resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
      }
    }
    
    @description('The default host name of the App Service app.')
    output appServiceAppHostName string = appServiceApp.properties.defaultHostName
    
  4. Salva il file.

    È possibile selezionare File>Salva con nome oppure premere CTRL+S in Windows (⌘+S in macOS). Assicurarsi di ricordare dove è stato salvato il file. Ad esempio, è possibile creare una cartella templates in cui salvarlo.

Creare un modulo per una rete CDN

Analogamente ai passaggi precedenti, verrà salvato un file di modulo creato in precedenza in modo che sia possibile pubblicarlo a breve.

  1. Creare un nuovo file denominato cdn.bicep.

  2. Copiare il codice seguente nel file cdn.bicep:

    @description('The host name (address) of the origin server.')
    param originHostName string
    
    @description('The name of the CDN profile.')
    param profileName string = 'cdn-${uniqueString(resourceGroup().id)}'
    
    @description('The name of the CDN endpoint')
    param endpointName string = 'endpoint-${uniqueString(resourceGroup().id)}'
    
    @description('Indicates whether the CDN endpoint requires HTTPS connections.')
    param httpsOnly bool
    
    var originName = 'my-origin'
    
    resource cdnProfile 'Microsoft.Cdn/profiles@2024-02-01' = {
      name: profileName
      location: 'global'
      sku: {
        name: 'Standard_Microsoft'
      }
    }
    
    resource endpoint 'Microsoft.Cdn/profiles/endpoints@2024-02-01' = {
      parent: cdnProfile
      name: endpointName
      location: 'global'
      properties: {
        originHostHeader: originHostName
        isHttpAllowed: !httpsOnly
        isHttpsAllowed: true
        queryStringCachingBehavior: 'IgnoreQueryString'
        contentTypesToCompress: [
          'text/plain'
          'text/html'
          'text/css'
          'application/x-javascript'
          'text/javascript'
        ]
        isCompressionEnabled: true
        origins: [
          {
            name: originName
            properties: {
              hostName: originHostName
            }
          }
        ]
      }
    }
    
    @description('The host name of the CDN endpoint.')
    output endpointHostName string = endpoint.properties.hostName
    
  3. Salva il file.

Pubblicare i moduli nel registro

  1. Nel terminale di Visual Studio Code eseguire i comandi seguenti. Sostituire YOUR_CONTAINER_REGISTRY_NAME con il nome del registro privato.

    az bicep publish \
      --file website.bicep \
      --target 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/website:v1'
    
    az bicep publish \
      --file cdn.bicep \
      --target 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1'
    

    Si noti che non è necessario eseguire l'accesso. Bicep usa le informazioni di accesso dell'interfaccia della riga di comando di Azure per autenticare l'utente nel registro.

  2. Eseguire il comando seguente per elencare gli artefatti nel registro:

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    L'output mostra i nomi dei moduli:

    [
      "cdn",
      "website"
    ]
    
  1. Nel terminale di Visual Studio Code eseguire i comandi seguenti. Sostituire YOUR_CONTAINER_REGISTRY_NAME con il nome del registro privato.

    bicep publish website.bicep `
      --target 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/website:v1'
    
    bicep publish cdn.bicep `
      --target 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1'
    

    Si noti che non è necessario eseguire l'accesso. Bicep usa le informazioni di accesso di Azure PowerShell per autenticare l'utente nel registro.

  2. Eseguire il comando seguente per elencare gli artefatti nel registro:

    Get-AzContainerRegistryRepository -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    L'output mostra i nomi dei moduli:

    cdn
    website
    

È anche possibile usare il portale di Azure per elencare i moduli nel registro. Nella scheda Panoramica del gruppo di risorse selezionare YOUR_CONTAINER_REGISTRY_NAME e quindi selezionare Repository. La connessione al portale di Azure viene eseguita più avanti in questo modulo.