Übung: Veröffentlichen einer Vorlagenspezifikation

Abgeschlossen

Ihr Team hat einige sicherheitsgehärtete Bicep-Dateien, die mit dem neuen Governancemodell Ihres Unternehmens konform sind. Eine der gehärteten Bicep-Dateien stellt eine Linux-basierte Azure App Service-App bereit. In dieser Übung verwenden Sie eine Bereitstellungspipeline, um die Bicep-Datei als Vorlagenspezifikation zu veröffentlichen.

In dem Prozess gehen Sie wie folgt vor:

  • Fügen Sie der Pipeline eine Lintstufe zu.
  • Fügen Sie eine Pipelinestufe hinzu, um die Vorlagenspezifikation zu veröffentlichen.
  • Stellen Sie sicher, dass die Pipeline erfolgreich gestartet und beendet wird.
  • Überprüfen Sie die veröffentlichte Vorlagenspezifikation in Azure.

Hinzufügen einer Lintstufe zur Pipeline

Ihr Repository enthält den Entwurf einer Pipelinedefinition, den Sie als Startpunkt verwenden können.

  1. Erweitern Sie in Visual Studio Code den Ordner template-specs/linux-app-service im Stammverzeichnis des Repositorys.

  2. Öffnen Sie die Datei pipeline.yml.

    Screenshot: Visual Studio Code mit Anzeige des Speicherorts der Pipelinedefinitionsdatei

  3. Ersetzen Sie im unteren Teil der Datei # To be added durch die folgende Definition der Lintphase:

    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    

    In Ihrem Repository ist die Datei bicepconfig.json enthalten, die den Linter so konfiguriert, dass anstelle von Warnungen Fehler ausgegeben werden. Wenn ein Fehler bei der Lintstufe auftritt, schlägt die Pipeline fehl.

    Tipp

    YAML-Dateien berücksichtigen Einzüge. Unabhängig davon, ob Sie diesen Code eingeben oder einfügen, stellen Sie sicher, dass der Einzug korrekt ist. Später in dieser Übung sehen Sie die vollständige YAML-Pipelinedefinition, sodass Sie überprüfen können, ob Ihre Datei übereinstimmt.

Hinzufügen einer Veröffentlichungsstufe zur Pipeline

Jetzt können Sie eine zweite Stufe hinzufügen, um die Vorlagenspezifikation in Azure zu veröffentlichen.

  1. Fügen Sie den folgenden Code an das Ende der Datei pipeline.yml hinzu:

    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    In dieser Phase wird der Code aus Ihrem Repository ausgecheckt und mithilfe der erstellten Dienstverbindung bei Azure angemeldet. Anschließend wird der Befehl az ts create ausgeführt, um die Vorlagenspezifikation in Azure zu veröffentlichen.

    Tipp

    Zur Einfachheit verwendet Ihre Pipeline die Buildnummer der Pipeline als Versionsnummer der Vorlagenspezifikation. In der nächsten Einheit lernen Sie ein komplexeres Versionsverwaltungsschema kennen.

  2. Speichern Sie die geänderte Datei.

Überprüfen und Committen Ihrer Pipelinedefinition

  1. Überprüfen Sie, ob die Datei pipeline.yml wie im folgenden Beispiel aussieht:

    trigger:
      batch: true
      branches:
        include:
        - main
      paths:
        include:
        - 'template-specs/linux-app-service/**'
    
    variables:
    - name: ServiceConnectionName
      value: ToyReusable
    - name: AzureResourceGroupName
      value: ToyReusable
    - name: AzureRegion
      value: westus3
    - name: TemplateSpecName
      value: linux-app-service
    - name: TemplateSpecFilePath
      value: template-specs/linux-app-service/main.bicep
    
    pool:
      vmImage: ubuntu-latest
    
    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    
    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    Falls nicht, aktualisieren Sie sie entsprechend diesem Beispiel und speichern sie.

  2. Committen und pushen Sie Ihre Änderungen in Ihr Git-Repository, indem Sie die folgenden Befehle im Visual Studio Code-Terminal ausführen:

    git add .
    git commit -m "Add lint and publish stages to Linux App Service template spec pipeline"
    git push
    

    Unmittelbar nach dem Pushen startet Azure Pipelines eine neue Pipelineausführung.

Überwachen der Pipeline

  1. Wählen Sie in Ihrem Browser Pipelines>Pipelines aus.

    Screenshot: Azure Pipelines mit Menüelement „Pipelines“

  2. Wählen Sie die aktive Pipelineausführung aus.

  3. Die Pipelineausführung wird angezeigt.

    Warten Sie, bis die Pipelineausführung abgeschlossen ist. Wenn dies der Fall ist, wird die Vorlagenspezifikation in Azure veröffentlicht.

    Screenshot: Azure Pipelines mit Anzeige einer erfolgreichen Pipelineausführung und hervorgehobener Buildnummer

  4. Notieren Sie die Buildnummer der Pipeline, die das heutige Datum und eine eindeutige Revisionsnummer enthält. Im Beispiel-Screenshot lautet die Build-Nummer 20230407.1.

Anzeigen der Vorlagenspezifikation in Azure

Sie können die veröffentlichte Vorlagenspezifikation auch im Azure-Portal anzeigen.

  1. Navigieren Sie in Ihrem Browser zum Azure-Portal.

  2. Wechseln Sie zur Ressourcengruppe ToyReusable, und wählen Sie die Vorlagenspezifikation linux-app-service aus.

    Screenshot des Azure-Portals: Ressourcengruppe mit hervorgehobenen Vorlagenspezifikationen

  3. Untersuchen Sie die Details der Vorlagenspezifikation.

    Screenshot des Azure-Portals: Ressourcengruppe mit Details zu den Vorlagenspezifikationen

    Beachten Sie, dass die Aktuelle Version und die Versionsnummer der Buildnummer der Pipeline entsprechen. Ihre Pipeline verwendet die Buildnummer für die Versionsnummer der Vorlage.