Übung: Verwenden von Modulen aus Ihrer Registrierung

Abgeschlossen

In der vorherigen Übung haben Sie das CDN und Websitemodule in der Registrierung Ihres Spielzeugunternehmens veröffentlicht. Nun möchten Sie dem Team, das den Spielzeughund entwickelt, zeigen, wie es die Module für seine eigene Bereitstellung verwenden kann.

In dieser Übung führen Sie die folgenden Schritte aus:

  • Erstellen Sie eine Bicep-Datei, die Module aus Ihrer privaten Registrierung enthält.
  • Fügen Sie Verweise auf die Module in der Registrierung hinzu.
  • Erstellen und untersuchen Sie die Bicep-Datei, um zu verstehen, wie der Modulwiederherstellungsprozess funktioniert.
  • Wechseln Sie zur Verwendung eines Registrierungsalias.
  • Stellen Sie Ihre Bicep-Datei in Azure bereit.

Erstellen einer Bicep-Datei

  1. Erstellen Sie in Visual Studio Code eine neue Datei mit dem Namen main.bicep.

  2. Speichern Sie die leere Datei, damit Visual Studio Code die Bicep-Tools lädt.

    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.

Hinzufügen der Module zur Bicep-Datei

  1. Fügen Sie in der Datei main.bicep die folgenden Parameter und Variablen hinzu:

    @description('The Azure region into which the resources should be deployed.')
    param location string = 'westus3'
    
    @description('The name of the App Service app.')
    param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}'
    
    @description('The name of the App Service plan SKU.')
    param appServicePlanSkuName string = 'F1'
    
    var appServicePlanName = 'toy-dog-plan'
    
  2. Verwenden Sie unterhalb der Parameter und Variablen den folgenden Code, um das Websitemodul aus Ihrer Registrierung hinzuzufügen. Ersetzen Sie YOUR_CONTAINER_REGISTRY_NAME durch den Namen Ihrer privaten Registrierung.

    module website 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/website:v1' = {
      name: 'toy-dog-website'
      params: {
        appServiceAppName: appServiceAppName
        appServicePlanName: appServicePlanName
        appServicePlanSkuName: appServicePlanSkuName
        location: location
      }
    }
    

    Beachten Sie, dass Bicep rote Wellenlinien unter dem Modulbezeichner anzeigt, wenn Sie mit der Eingabe beginnen, diese dann aber ausgeblendet werden. Dieses Verhalten tritt auf, weil die Bicep-Erweiterung für Visual Studio Code das Modul aus der Registrierung liest und in Ihrem lokalen Dateisystem speichert.

  3. Fügen Sie unter dem erstellten Modul mit dem folgenden Code das CDN-Modul aus Ihrer Registrierung hinzu. Ersetzen Sie YOUR_CONTAINER_REGISTRY_NAME durch den Namen Ihrer privaten Registrierung.

    module cdn 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1' = {
      name: 'toy-dog-cdn'
      params: {
        httpsOnly: true
        originHostName: website.outputs.appServiceAppHostName
      }
    }
    
  4. Speichern Sie die Datei .

Erstellen und Überprüfen Ihrer Bicep-Datei

Hier erstellen Sie die Bicep-Datei in einer JSON ARM-Vorlage. Normalerweise müssen Sie keinen Build erstellen, dieser Schritt ist aber hilfreich, wenn Sie gerade lernen, wie Module funktionieren.

  1. Führen Sie im Terminal von Visual Studio Code den folgenden Befehl aus, um die Bicep-Datei in einer JSON-Datei zu erstellen.

    az bicep build --file main.bicep
    

    Bicep erstellt eine Datei mit dem Namen main.json im gleichen Ordner wie die Datei main.bicep.

  2. Öffnen Sie die Datei main.json.

    Beachten Sie, dass im Abschnitt resources der JSON-ARM-Vorlage ab Zeile 134 einige Ressourcen den Typ Microsoft.Resources/deployments aufweisen. Diese Ressourcen stellen die Modulbereitstellungen dar, die in dem Modul definiert wurden, das Sie aus der Registrierung hinzugefügt haben.

  1. Führen Sie im Terminal von Visual Studio Code den folgenden Befehl aus, um die Bicep-Datei in einer JSON-Datei zu erstellen.

    bicep build main.bicep
    

    Bicep erstellt eine Datei mit dem Namen main.json im gleichen Ordner wie die Datei main.bicep.

  2. Öffnen Sie die Datei main.json.

    Beachten Sie, dass im Abschnitt resources der JSON-ARM-Vorlage ab Zeile 134 einige Ressourcen den Typ Microsoft.Resources/deployments aufweisen. Diese Ressourcen stellen die Modulbereitstellungen dar, die in dem Modul definiert wurden, das Sie aus der Registrierung hinzugefügt haben.

Erstellen eines Registrierungsalias

Sie entscheiden sich, einen Registrierungsalias zu erstellen, anstatt die Registrierungs-URL in Ihre Bicep-Datei einzubetten. Dieser Ansatz erleichtert das Lesen der Bicep-Datei.

  1. Erstellen Sie in Visual Studio Code eine neue Datei mit dem Namen bicepconfig.json. Erstellen Sie sie im gleichen Ordner, der die Datei main.bicep enthält.

  2. Fügen Sie den folgenden Code in die Datei bicepconfig.json ein. Ersetzen Sie YOUR_CONTAINER_REGISTRY_NAME durch den Namen Ihrer privaten Registrierung.

    {
      "moduleAliases": {
        "br": {
          "ToyCompanyRegistry": {
            "registry": "YOUR_CONTAINER_REGISTRY_NAME.azurecr.io"
          }
        }
      }
    }
    
  3. Speichern Sie die Datei .

Verwenden des Registrierungsalias

Hier aktualisieren Sie Ihre Bicep-Datei so, dass der Registrierungsalias verwendet wird, anstatt direkt auf die Registrierung zu verweisen.

  1. Öffnen Sie die Datei main.bicep.

  2. Suchen Sie nach der Definition des Moduls website, und ändern Sie die Definition so, dass sie den Registrierungsalias enthält:

    module website 'br/ToyCompanyRegistry:website:v1' = {
      name: 'toy-dog-website'
      params: {
        appServiceAppName: appServiceAppName
        appServicePlanName: appServicePlanName
        appServicePlanSkuName: appServicePlanSkuName
        location: location
      }
    }
    

    Tipp

    Stellen Sie sicher, dass Sie den Anfang des Modulpfads von br: in br/ ändern. Ändern Sie außerdem nach ToyCompanyRegistry den Schrägstrich (/) in einen Doppelpunkt (:).

  3. Nehmen Sie eine ähnliche Änderung am Modul cdn vor:

    module cdn 'br/ToyCompanyRegistry:cdn:v1' = {
      name: 'toy-dog-cdn'
      params: {
        httpsOnly: true
        originHostName: website.outputs.appServiceAppHostName
      }
    }
    
  4. Speichern Sie die Datei .

Überprüfen Ihrer Bicep-Datei

Nachdem Sie alle oben genannten Änderungen durchgeführt haben, sollte Ihre Datei main.bicep wie im folgenden Beispiel aussehen:

@description('The Azure region into which the resources should be deployed.')
param location string = 'westus3'

@description('The name of the App Service app.')
param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}'

@description('The name of the App Service plan SKU.')
param appServicePlanSkuName string = 'F1'

var appServicePlanName = 'toy-dog-plan'

module website 'br/ToyCompanyRegistry:website:v1' = {
  name: 'toy-dog-website'
  params: {
    appServiceAppName: appServiceAppName
    appServicePlanName: appServicePlanName
    appServicePlanSkuName: appServicePlanSkuName
    location: location
  }
}

module cdn 'br/ToyCompanyRegistry:cdn:v1' = {
  name: 'toy-dog-cdn'
  params: {
    httpsOnly: true
    originHostName: website.outputs.appServiceAppHostName
  }
}

Wenn die Datei nicht übereinstimmt, kopieren Sie das Beispiel, oder passen Sie Ihre Vorlage an das Beispiel an.

In Azure bereitstellen

Stellen Sie im Terminal von Visual Studio Code die Vorlage in Azure bereit, indem Sie den folgenden Befehl ausführen. Der Vorgang der erfolgreichen Bereitstellung kann einige Minuten dauern.

az deployment group create \
   --template-file main.bicep
New-AzResourceGroupDeployment -TemplateFile main.bicep

Überprüfen der Bereitstellung

  1. Navigieren Sie zum Azure-Portal, und stellen Sie sicher, dass Sie sich im Sandboxabonnement befinden:

    1. Wählen Sie dazu Ihren Avatar in der rechten oberen Ecke der Seite aus.
    2. Klicken Sie dann auf Verzeichnis wechseln. Wählen Sie in der Liste das Verzeichnis Microsoft Learn Sandbox aus.
  2. Wählen Sie im linken Bereich Ressourcengruppen aus.

  3. Wählen Sie [Name der Sandboxressourcengruppe] aus.

  4. Klicken Sie im Menü auf der linken Seite auf Bereitstellungen.

    Screenshot of the Azure portal that shows the resource group, with the Deployments menu item highlighted.

    Beachten Sie, dass drei Bereitstellungen aufgeführt werden:

    • main stellt die Bereitstellung Ihrer übergeordneten Bicep-Datei dar.
    • toy-dog-cdn und toy-dog-website sind die Module, die Sie in Ihre Datei main.bicep eingefügt haben.
  5. Wählen Sie die Bereitstellung main aus, und erweitern Sie die Option Bereitstellungsdetails.

    Beachten Sie, dass beide Module aufgeführt sind und dass ihre Typen als Microsoft.Resources/deployments angezeigt werden. Das toy-dog-website Modul wird zwei Mal aufgeführt, da auch in der Vorlage auf seine Ausgabe verwiesen wird.

    Screenshot of the Azure portal that shows the details of the main deployment.

  6. Wählen Sie die Bereitstellungen toy-dog-cdn und toy-dog-website aus, und überprüfen Sie die jeweils bereitgestellten Ressourcen. Beachten Sie, dass sie den im jeweiligen Modul definierten Ressourcen entsprechen.