Oefening: een module publiceren naar uw register

Voltooid

U hebt een persoonlijk register gemaakt dat uw speelgoedbedrijf kan gebruiken. In deze oefening gaat u het volgende doen:

  • Maak een module voor de websitebronnen.
  • Maak een andere module voor de resources in het CDN.
  • Publiceer de modules in uw register.
  • Geef de modules in het register weer.

In deze oefening wordt de Bicep-extensie voor Visual Studio Code gebruikt. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.

Een module voor een website maken

U hebt eerder een module gemaakt waarmee een website wordt geïmplementeerd. Hier slaat u het modulebestand op, zodat u het kunt publiceren.

  1. Open Visual Studio Code.

  2. Maak een nieuw bestand met de naam website.bicep.

  3. Plak de volgende code in het bestand 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. Sla het bestand op.

    U kunt Bestand>opslaan als selecteren of Ctrl+S selecteren in Windows (⌘+S in macOS). Vergeet niet waar u het bestand opslaat. U kunt bijvoorbeeld een map met sjablonen maken om deze op te slaan in.

Een module voor een CDN maken

Net als in de vorige stappen slaat u een vooraf gemaakt modulebestand op, zodat u het snel kunt publiceren.

  1. Maak een nieuw bestand met de naam cdn.bicep.

  2. Plak de volgende code in het cdn.bicep-bestand :

    @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. Sla het bestand op.

De modules publiceren in uw register

  1. Voer in de Visual Studio Code-terminal de volgende opdrachten uit. Vervang door YOUR_CONTAINER_REGISTRY_NAME de naam van uw privé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'
    

    U ziet dat u zich niet hoeft aan te melden. Bicep gebruikt de aanmeldingsgegevens van de Azure CLI om u bij het register te verifiëren.

  2. Voer de volgende opdracht uit om de artefacten in uw register weer te geven:

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    In de uitvoer ziet u de namen van uw modules:

    [
      "cdn",
      "website"
    ]
    
  1. Voer in de Visual Studio Code-terminal de volgende opdrachten uit. Vervang door YOUR_CONTAINER_REGISTRY_NAME de naam van uw privé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'
    

    U ziet dat u zich niet hoeft aan te melden. Bicep gebruikt de aanmeldingsgegevens van Azure PowerShell om u bij het register te verifiëren.

  2. Voer de volgende opdracht uit om de artefacten in uw register weer te geven:

    Get-AzContainerRegistryRepository -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    In de uitvoer ziet u de namen van uw modules:

    cdn
    website
    

U kunt azure Portal ook gebruiken om de modules in uw register weer te geven. Selecteer YOUR_CONTAINER_REGISTRY_NAME op het tabblad Overzicht van uw resourcegroep opslagplaatsen en selecteer deze. Verderop in deze module maakt u verbinding met Azure Portal.