Ejercicio: Publicación de un módulo en el registro

Completado

Ha creado un registro privado para que lo use su empresa de juguetes. En este ejercicio, aprenderá a:

  • Cree un módulo para los recursos del sitio web.
  • Cree otro módulo para los recursos en la red de entrega de contenido.
  • Publique los módulos en el registro.
  • Enumere los módulos en el registro.

En este ejercicio se usa la extensión de Bicep para Visual Studio Code. Asegúrese de instalar esta extensión en Visual Studio Code.

Creación de un módulo para un sitio web

Anteriormente creó un módulo que implementa un sitio web. Aquí, guarde el archivo de módulo para poder publicarlo.

  1. Abra Visual Studio Code.

  2. Cree un nuevo archivo llamado website.bicep.

  3. Pegue el código siguiente en el archivo 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. Guarde el archivo.

    Puede seleccionar Archivo>Guardar como o Ctrl+S en Windows (⌘+S en macOS). Asegúrese de recordar dónde guarda el archivo. Por ejemplo, podría crear una carpeta templates para guardarlo ahí.

Creación de un módulo para una red CDN

De forma similar a los pasos anteriores, guarde un archivo de módulo creado previamente para poder publicarlo pronto.

  1. Cree un nuevo archivo llamado cdn.bicep.

  2. Pegue el código siguiente en el archivo 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. Guarde el archivo.

Publicación de los módulos en el registro

  1. En el terminal de Visual Studio Code, ejecute los siguientes comandos. Reemplace YOUR_CONTAINER_REGISTRY_NAME por el nombre del registro privado.

    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'
    

    Observe que no ha sido necesario iniciar sesión. Bicep usa la información de inicio de sesión de la CLI de Azure para autenticarle en el registro.

  2. Ejecute el siguiente comando para enumerar los artefactos en el registro:

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    En el resultado se muestran los nombres de los módulos:

    [
      "cdn",
      "website"
    ]
    
  1. En el terminal de Visual Studio Code, ejecute los siguientes comandos. Reemplace YOUR_CONTAINER_REGISTRY_NAME por el nombre del registro privado.

    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'
    

    Observe que no ha sido necesario iniciar sesión. Bicep usa la información de inicio de sesión de Azure PowerShell autenticarle en el registro.

  2. Ejecute el siguiente comando para enumerar los artefactos en el registro:

    Get-AzContainerRegistryRepository -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    En el resultado se muestran los nombres de los módulos:

    cdn
    website
    

También puede usar Azure Portal para enumerar los módulos en el registro. En la pestaña Información general del grupo de recursos, seleccione YOUR_CONTAINER_REGISTRY_NAME y después Repositorios. Más adelante en este módulo se conectará a Azure Portal.