Övning – Publicera en modul i registret

Slutförd

Du har skapat ett privat register som leksaksföretaget ska använda. I den här övningen kommer du att:

  • Skapa en modul för webbplatsresurserna.
  • Skapa en till modul för resurserna i CDN.
  • Publicera modulerna i registret.
  • Visa en lista över modulerna i registret.

Den här övningen använder Bicep-tillägget för Visual Studio Code. Installera tillägget i Visual Studio Code.

Skapa en modul för en webbplats

Du har tidigare skapat en modul som distribuerar en webbplats. Här sparar du modulfilen så att du kan publicera den.

  1. Öppna Visual Studio Code.

  2. Skapa en ny fil med namnet website.bicep.

  3. Klistra in följande kod i filen 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. Spara filen.

    Du kan antingen välja Spara som-fil> eller välja Ctrl+S i Windows (⌘+S på macOS). Kom ihåg var du sparar filen. Du kanske till exempel vill skapa en mallmapp för att spara den.

Skapa en modul för ett CDN

Precis som i föregående steg sparar du en fördefinierad modulfil så att du kan publicera den snart.

  1. Skapa en ny fil med namnet cdn.bicep.

  2. Klistra in följande kod i filen 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. Spara filen.

Publicera modulerna i registret

  1. Kör följande kommandon i Visual Studio Code-terminalen. Ersätt YOUR_CONTAINER_REGISTRY_NAME med namnet på ditt privata register.

    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'
    

    Observera att du inte behövde logga in. Bicep använder inloggningsinformationen från Azure CLI för att autentisera dig till registret.

  2. Kör följande kommando för att visa artefakterna i registret:

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    Utdata visar namnen på dina moduler:

    [
      "cdn",
      "website"
    ]
    
  1. Kör följande kommandon i Visual Studio Code-terminalen. Ersätt YOUR_CONTAINER_REGISTRY_NAME med namnet på ditt privata register.

    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'
    

    Observera att du inte behövde logga in. Bicep använder inloggningsinformationen från Azure PowerShell för att autentisera dig till registret.

  2. Kör följande kommando för att visa artefakterna i registret:

    Get-AzContainerRegistryRepository -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    Utdata visar namnen på dina moduler:

    cdn
    website
    

Du kan också använda Azure Portal för att lista modulerna i registret. På fliken Översikt för resursgruppen väljer du YOUR_CONTAINER_REGISTRY_NAME och väljer sedan Lagringsplatser. Du ansluter till Azure Portal senare i den här modulen.