Übung: Veröffentlichen eines Moduls in Ihrer Registrierung

Abgeschlossen

Sie haben eine private Registrierung erstellt, die Ihr Unternehmen, ein Spielwarenhersteller, verwenden kann. In dieser Übung führen Sie die folgenden Schritte aus:

  • Erstellen Sie ein Modul für die Websiteressourcen.
  • Erstellen Sie ein weiteres Modul für die Ressourcen im CDN.
  • Veröffentlichen Sie die Module in Ihrer Registrierung.
  • Listen Sie die Module in der Registrierung auf.

In dieser Übung wird die Bicep-Erweiterung für Visual Studio Code verwendet. Sie müssen diese Erweiterung in Visual Studio Code installieren.

Erstellen eines Moduls für eine Website

Sie haben zuvor ein Modul erstellt, das eine Website bereitstellt. Jetzt speichern Sie die Moduldatei, damit Sie sie veröffentlichen können.

  1. Öffnen Sie Visual Studio Code.

  2. Erstellen Sie eine neue Datei namens website.bicep.

  3. Fügen Sie den folgenden Code in die Datei website.bicep ein:

    @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. Speichern Sie die Datei .

    Sie können entweder auf Datei>Speichern unter klicken oder STRG+S unter Windows (⌘+S unter macOS) drücken. Merken Sie sich unbedingt den Speicherort der Datei. Sie sollten beispielsweise einen Ordner templates erstellen und sie darin speichern.

Erstellen eines Moduls für ein CDN

Ähnlich wie bei den vorherigen Schritten speichern Sie eine vorgefertigte Moduldatei, damit Sie sie in Kürze veröffentlichen können.

  1. Erstellen Sie eine neue Datei namens cdn.bicep.

  2. Fügen Sie den folgenden Code in die Datei cdn.bicep ein:

    @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. Speichern Sie die Datei .

Veröffentlichen der Module in Ihrer Registrierung

  1. Führen Sie im Visual Studio Code-Terminal die folgenden Befehle aus. Ersetzen Sie YOUR_CONTAINER_REGISTRY_NAME durch den Namen Ihrer privaten Registrierung.

    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'
    

    Beachten Sie, dass Sie sich nicht anmelden mussten. Bicep verwendet die Anmeldeinformationen aus Azure CLI, um Sie bei der Registrierung zu authentifizieren.

  2. Führen Sie den folgenden Befehl aus, um die Artefakte in Ihrer Registrierung aufzulisten:

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    Die Ausgabe zeigt die Namen Ihrer Module:

    [
      "cdn",
      "website"
    ]
    
  1. Führen Sie im Visual Studio Code-Terminal die folgenden Befehle aus. Ersetzen Sie YOUR_CONTAINER_REGISTRY_NAME durch den Namen Ihrer privaten Registrierung.

    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'
    

    Beachten Sie, dass Sie sich nicht anmelden mussten. Bicep verwendet die Anmeldeinformationen aus Azure CLI, um Sie bei der Registrierung zu authentifizieren.

  2. Führen Sie den folgenden Befehl aus, um die Artefakte in Ihrer Registrierung aufzulisten:

    Get-AzContainerRegistryRepository -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    Die Ausgabe zeigt die Namen Ihrer Module:

    cdn
    website
    

Sie können auch das Azure-Portal verwenden, um die Module in Ihrer Registrierung aufzulisten. Wählen Sie auf der Registerkarte Übersicht Ihrer Ressourcengruppe YOUR_CONTAINER_REGISTRY_NAME und dann Repositorys aus. Die Verbindung mit dem Azure-Portal stellen Sie später in diesem Modul her.