Übung: Aktualisieren des Triggers Ihrer Pipeline

Abgeschlossen

Ein Kollege bittet Sie, die Always On-Funktion von App Service auf der Unternehmenswebsite zu aktivieren, damit die Website-App immer ausgeführt wird.

In dieser Übung aktualisieren Sie die erstellte Pipeline so, dass sie automatisch ausgeführt wird, wenn sich eine Datei in Ihrem Mainbranch ändert. Sie verwenden die aktualisierte Pipeline, um die angeforderte Konfigurationsänderung für die Website bereitzustellen.

In dem Prozess gehen Sie wie folgt vor:

  • Aktualisieren Sie Ihre Pipeline so, dass sie automatisch ausgelöst wird, wenn Dateien im Ordner deploy im Mainbranch geändert werden.
  • Nehmen Sie eine Änderung an Ihrer Bicep-Datei vor.
  • Überprüfen Sie, ob die Pipeline automatisch ausgeführt wird.

Aktualisieren des Triggers auf branchbasiert

  1. Öffnen Sie in Visual Studio Code die Datei deploy/azure-pipelines.yml.

  2. Entfernen Sie den manuellen Trigger in der ersten Zeile.

  3. Fügen Sie in der ersten Zeile die folgende Triggerdefinition hinzu:

    trigger:
      batch: true
      branches:
        include:
        - main
    

    Beachten Sie, dass Sie auch die Parallelitätssteuerung aktivieren, um zu vermeiden, dass Ihre Pipeline mehrmals gleichzeitig ausgeführt wird.

  4. Speichern Sie die geänderte Datei.

  5. Committen Sie Ihre Änderungen, aber pushen Sie sie noch nicht. Sie werden sie in Kürze pushen.

    git add .
    git commit -m 'Add branch trigger'
    

Aktualisieren Ihrer Bicep-Datei

  1. Öffnen Sie in Visual Studio Code die Datei main.bicep.

  2. Fügen Sie in der siteConfig-Eigenschaft der appServiceApp-Ressourcendefinition die alwaysOn-Eigenschaft mit dem Wert true hinzu:

    resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
        siteConfig: {
          alwaysOn: true
          appSettings: [
            {
              name: 'ToyManualsStorageAccountConnectionString'
              value: toyManualsStorageAccountConnectionString
            }
          ]
        }
      }
    }
    
  3. Speichern Sie die geänderte Datei.

  4. Committen Sie Ihre Änderungen, und pushen Sie beide Commits, indem Sie folgenden Code im Visual Studio Code-Terminal ausführen:

    git add .
    git commit -m 'Configure app Always On setting'
    git push
    

Überprüfen von Pipelinefehlern

  1. Wählen Sie in Ihrem Browser Pipelines und dann Ihre Pipeline aus.

  2. Wählen Sie die letzte Ausführung aus, um zu sehen, ob die Pipeline automatisch ausgeführt wurde. Die Pipeline wurde ausgeführt, da Sie Ihre Änderungen in einen Branch gepusht haben, der vom Branchtrigger überwacht wird. Wenn die Pipeline noch ausgeführt wird, warten Sie eine Minute, und aktualisieren Sie dann die Seite.

    Screenshot of Azure DevOps that shows the failed pipeline run.

    Die Pipeline zeigt eine fehlerhafte Bereitstellung an.

  3. Um den Fehler zu diagnostizieren, wählen Sie unter Aufträge den Auftrag und dann den fehlerhaften Task AzureResourceManagerTemplateDeployment aus. Scrollen Sie, um die vollständige Fehlermeldung anzuzeigen. Die Fehlermeldung enthält den folgenden Text:

    There was a conflict. AlwaysOn cannot be set for this site as the plan does not allow it. For more information on pricing and features, please see: https://aka.ms/appservicepricingdetails

    Diese Fehlermeldung gibt an, dass bei der Bereitstellung ein Fehler aufgetreten ist, da die App Service-App mit dem Free-Tarif (F1) bereitgestellt wurde, der das Feature „Always On“ nicht unterstützt.

    Wichtig

    Dieses Beispiel zeigt, wie wichtig es ist, Ihre Bicep-Dateien einschließlich aller verwendeten Parameterwerte zu testen. Kleine Fehler werden schnell in Ihre Ressourcenkonfiguration oder anderen Code eingefügt. Möglicherweise bemerken Sie ein Problem erst, wenn Ihre Pipeline den Code bereitstellt und ein Fehler auftritt. In einem späteren Modul lernen Sie einige Strategien zum Überprüfen und Testen Ihres Bicep-Codes kennen.

Korrigieren der Bicep-Datei und erneutes Auslösen der Pipeline

Sie sprechen mit Ihrer Kollegin über die fehlgeschlagene Bereitstellung. Sie entscheiden gemeinsam, dass die Einstellung „Always On“ nur auf Ihre Produktionsumgebung angewandt werden muss. Hier beheben Sie das Problem, das Ihren Bereitstellungsfehler verursacht hat, indem Sie die neue, beschlossene Regel anwenden.

  1. Fügen Sie in Visual Studio Code der Variablen environmentConfigurationMap für jeden Umgebungstyp neue Eigenschaften hinzu:

    var environmentConfigurationMap = {
      nonprod: {
        appServiceApp: {
          alwaysOn: false
        }
        appServicePlan: {
          sku: {
            name: 'F1'
            capacity: 1
          }
        }
        toyManualsStorageAccount: {
          sku: {
            name: 'Standard_LRS'
          }
        }
      }
      prod: {
        appServiceApp: {
          alwaysOn: true
        }
        appServicePlan: {
          sku: {
            name: 'S1'
            capacity: 2
          }
        }
        toyManualsStorageAccount: {
          sku: {
            name: 'Standard_ZRS'
          }
        }
      }
    }
    
  2. Ändern Sie die alwaysOn-Einstellung der Anwendung, um den entsprechenden Konfigurationszuordnungswert für den Umgebungstyp zu verwenden:

    resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
        siteConfig: {
          alwaysOn: environmentConfigurationMap[environmentType].appServiceApp.alwaysOn
          appSettings: [
            {
              name: 'ToyManualsStorageAccountConnectionString'
              value: toyManualsStorageAccountConnectionString
            }
          ]
        }
      }
    }
    
  3. Speichern Sie die geänderte Datei.

  4. Committen und pushen Sie Ihre Änderungen im Visual Studio Code-Terminal:

    git add .
    git commit -m 'Enable App Service Always On for production environments only'
    git push
    

Überprüfen des Erfolgs der Pipeline

  1. Wechseln Sie in Azure DevOps zur Liste Pipelines zurück, wählen Sie Ihre Pipeline aus.

  2. Wählen Sie die letzte Ausführung aus. Wenn die Pipeline noch ausgeführt wird, warten Sie eine Minute, und aktualisieren Sie dann die Seite.

    Screenshot of Azure DevOps that shows the successful pipeline run.

    Die Pipeline zeigt eine erfolgreiche Bereitstellung an. Dieses Mal war sie erfolgreich, da Sie eine gültige Bicep-Datei verwendet haben.

Bereinigen der Ressourcen

Nachdem Sie die Übung abgeschlossen haben, können Sie die Ressourcen entfernen, damit Ihnen dafür keine Gebühren berechnet werden.

Führen Sie im Visual Studio Code-Terminal den folgenden Befehl aus:

az group delete --resource-group ToyWebsite --yes --no-wait

Die Ressourcengruppe wird im Hintergrund gelöscht.

Remove-AzResourceGroup -Name ToyWebsite -Force