Exercício – Publicar um módulo no registro

Concluído

Você criou um registro privado para sua empresa de brinquedos usar. Neste exercício, você vai:

  • Crie um módulo para os recursos do site.
  • Crie outro módulo para os recursos na CDN.
  • Publique os módulos no registro.
  • Liste os módulos no registro.

Este exercício usa a extensão Bicep para Visual Studio Code. É necessário que você instale essa extensão no Visual Studio Code.

Criar um módulo para um site

Você criou anteriormente um módulo que implanta um site. Aqui, você salva o arquivo de módulo para que possa publicá-lo.

  1. Abra o Visual Studio Code.

  2. Crie um novo arquivo chamado website.bicep.

  3. Cole o código a seguir no arquivo 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. Salve o arquivo.

    Você pode selecionar Arquivo>Salvar Como ou Ctrl + S no Windows (⌘ + S no macOS). Certifique-se de lembrar onde salvou o arquivo. Por exemplo, você pode criar uma pasta modelos para salvá-lo.

Criar um módulo para um CDN

De maneira semelhante às etapas anteriores, você salva um arquivo de módulo criado anteriormente para que possa publicá-lo em seguida.

  1. Crie um novo arquivo chamado cdn.bicep.

  2. Cole o código a seguir no arquivo 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. Salve o arquivo.

Publicar os módulos no registro

  1. No terminal do Visual Studio Code, execute os comandos a seguir. Substitua YOUR_CONTAINER_REGISTRY_NAME pelo nome do 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 você não precisou conectar. O Bicep usa as informações de entrada da CLI do Azure para autenticar você para o registro.

  2. Execute o seguinte comando para listar os artefatos em seu registro:

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    A saída mostra os nomes dos seus módulos:

    [
      "cdn",
      "website"
    ]
    
  1. No terminal do Visual Studio Code, execute os comandos a seguir. Substitua YOUR_CONTAINER_REGISTRY_NAME pelo nome do 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 você não precisou conectar. O Bicep usa as informações de entrada do Azure PowerShell para autenticar você para o registro.

  2. Execute o seguinte comando para listar os artefatos em seu registro:

    Get-AzContainerRegistryRepository -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    A saída mostra os nomes dos seus módulos:

    cdn
    website
    

Você também pode usar o portal do Azure para listar os módulos no registro. Na guia Visão geral do grupo de recursos, selecione YOUR_CONTAINER_REGISTRY_NAME e Repositórios. Você vai se conectar ao portal do Azure mais adiante neste módulo.