Konfigurieren von Pipelines für die sichere Verwendung von Variablen und Parametern

In diesem Lab lernen Sie, wie Sie Pipelines für die sichere Verwendung von Variablen und Parametern konfigurieren.

Diese Übung dauert ca. 20 Minuten.

Vorbereitung

Sie benötigen ein Azure-Abonnement, eine Azure DevOps-Organisation und die eShopOnWeb-Anwendung, um den Labs zu folgen.

Anweisungen

Übung 1: Sicherstellen von Parameter- und Variablentypen

Übung 1: Importieren und Ausführen der CI-Pipeline

Importieren Sie zunächst die CI-Pipeline mit dem Namen eshoponweb-ci.ymll.

  1. Navigieren Sie zum Azure DevOps-Portal unter https://dev.azure.com und öffnen Sie Ihre Organisation.

  2. Öffnen Sie das Projekt eShopOnWeb.

  3. Navigieren Sie zu Pipelines > Pipelines.

  4. Wählen Sie Pipeline erstellen aus.

  5. Wählen Sie Azure Repos Git (Yaml).

  6. Wählen Sie das Repository eShopOnWeb aus.

  7. Wählen Sie die Option Vorhandene Azure Pipelines-YAML-Datei aus.

  8. Wählen Sie die Datei /.ado/eshoponweb-ci.yml und dann Weiter aus.

  9. Klicken Sie auf die Schaltfläche Ausführen, um die Pipeline auszuführen.

    [!NOTE] Ihre Pipeline nimmt einen Namen auf der Grundlage des Projektnamens an. Benennen Sie sie um, um die Pipeline besser zu identifizieren.

  10. Wechseln Sie zu Pipelines > Pipelines und wählen Sie die zuletzt erstellte Pipeline aus. Wählen Sie die Auslassungspunkte und die Option Umbenennen/Verschieben aus.

  11. Nennen Sie sie eshoponweb-ci-parameters, und wählen Sie Speichern aus.

Aufgabe 2: Sicherstellen von Parametertypen für YAML-Pipelines

In dieser Aufgabe legen Sie Parameter- und Parametertypen für die Pipeline fest.

  1. Wechseln Sie zu Pipelines > Pipelines, und wählen Sie die eshoponweb-ci-parameters-Pipeline aus.

  2. Wählen Sie Bearbeiten aus.

  3. Fügen Sie die folgenden Abschnitte „Parameter“ und „Ressourcen“ am Anfang der YAML-Datei hinzu:

    parameters:
    - name: dotNetProjects
      type: string
      default: '**/*.sln'
    - name: testProjects
      type: string
      default: 'tests/UnitTests/*.csproj'
    
    resources:
      repositories:
      - repository: self
        trigger: none
    
    
  4. Ersetzen Sie die hartcodierten Pfade in den Aufgaben Restore, Build und Test durch die soeben erstellten Parameter.

    • Projekte ersetzen: **/*.sln mit Projekten: $ in den Aufgaben Restore und Build;
    • Projekte ersetzen: tests/UnitTests/*.csproj mit Projekten: $ in der Aufgabe Test;

    Die Aufgaben Restore, Build und Test im Abschnitt „Schritte“ der YAML-Datei sollten wie folgt aussehen:

     steps:
     - task: DotNetCoreCLI@2
       displayName: Restore
       inputs:
         command: 'restore'
         projects: ${{ parameters.dotNetProjects }}
         feedsToUse: 'select'
        
     - task: DotNetCoreCLI@2
       displayName: Build
       inputs:
         command: 'build'
         projects: ${{ parameters.dotNetProjects }}
        
     - task: DotNetCoreCLI@2
       displayName: Test
       inputs:
         command: 'test'
         projects: ${{ parameters.testProjects }}
        
    
  5. Speichern Sie die Pipeline, und führen Sie sie aus. Stellen Sie sicher, dass die Pipelineausführung erfolgreich abgeschlossen wird.

    Screenshot der Pipelineausführung mit Parametern.

Aufgabe 3: Variablen und Parameter sichern

In dieser Aufgabe sichern Sie die Variablen und Parameter aus Ihrer Pipeline mithilfe von Variablengruppen.

  1. Wechseln Sie zu Pipelines > Library.

  2. Wählen Sie die Schaltfläche + Variablengruppe aus, um eine neue Variablengruppe mit dem Namen BuildConfigurations zu erstellen.

  3. Fügen Sie eine Variable mit dem Namen buildConfiguration hinzu, und legen Sie ihren Wert fest auf Release.

  4. Speichern Sie die Variablengruppe.

    Screenshot der Variablengruppe mit BuildConfigurations.

  5. Wählen Sie die Schaltfläche Pipelineberechtigungen und dann die Schaltfläche + aus, um eine neue Pipeline hinzuzufügen.

  6. Wählen Sie die Pipeline eshoponweb-ci-parameters aus, damit die Pipeline die Variablengruppe verwenden kann.

    Screenshot der Pipelineberechtigungen.

    [!NOTE] Sie können auch festlegen, dass bestimmte Benutzer*innen oder Gruppen die Variablengruppe bearbeiten können, indem Sie auf die Schaltfläche Sicherheit klicken.

  7. Navigieren Sie zu Pipelines > Pipelines.

  8. Öffnen Sie die Pipeline eshoponweb-ci-parameters, und wählen Sie Bearbeiten aus.

  9. Verweisen Sie oben in der YML-Datei direkt unter den Parametern auf die Variablengruppe, indem Sie Folgendes hinzufügen:

    variables:
      - group: BuildConfigurations
    
  10. Ersetzen Sie in der Aufgabe „Erstellen“ den Befehl „Erstellen“ durch die folgenden Zeilen, um die Buildkonfiguration aus der Variablengruppe zu verwenden.

             command: 'build'
             projects: ${{ parameters.dotNetProjects }}
             configuration: $(buildConfiguration)
    
  11. Speichern Sie die Pipeline, und führen Sie sie aus. Mit folgender Buildkonfiguration sollte sie erfolgreich ausgeführt werdenRelease. Sie können dies überprüfen, indem Sie sich die Protokolle der Aufgabe „Erstellen“ ansehen.

[!NOTE] Auf diese Weise können Sie Ihre Variablen und Parameter mithilfe von Variablengruppen sichern, ohne sie in YAML-Dateien hartcodieren zu müssen.

Aufgabe 4: Obligatorische Variablen und Parameter überprüfen

In dieser Aufgabe überprüfen Sie die obligatorischen Variablen, bevor die Pipeline ausgeführt wird.

  1. Navigieren Sie zu Pipelines > Pipelines.

  2. Öffnen Sie die Pipeline eshoponweb-ci-parameters, und wählen Sie Bearbeiten aus.

  3. Fügen Sie im Abschnitt „Phasen“ am Anfang (nach der Zeile stage:) eine neue Phase mit dem Namen Validate hinzu, um die obligatorischen Variablen zu überprüfen, bevor die Pipeline ausgeführt wird.

     - stage: Validate
       displayName: Validate mandatory variables
       jobs:
       - job: ValidateVariables
         pool:
           vmImage: ubuntu-latest
         steps:
         - script: |
             if [ -z "$(buildConfiguration)" ]; then
               echo "Error: buildConfiguration variable is not set"
               exit 1
             fi
           displayName: 'Validate Variables'
    

    [!NOTE] In dieser Phase wird ein Skript ausgeführt, um die buildConfiguration-Variable zu überprüfen. Wenn die Variablen nicht festgelegt sind, schlägt das Skript fehl, und die Pipeline wird beendet.

  4. Stellen Sie sicher, dass die Build-Phase von der Validate-Phase abhängig ist, indem Sie dependsOn: Validate am Anfang der Build-Phase hinzufügen:

     - stage: Build
       displayName: Build .Net Core Solution
       dependsOn: Validate
    
  5. Speichern Sie die Pipeline, und führen Sie sie aus. Sie wird erfolgreich ausgeführt, da die buildConfiguration-Variable in der Variablengruppe festgelegt ist.

  6. Um die Überprüfung zu testen, entfernen Sie die buildConfiguration-Variable aus der Variablengruppe, oder löschen Sie die Variablengruppe, und führen Sie die Pipeline erneut aus. Bei folgendem Fehler sollte es fehlschlagen:

     Error: buildConfiguration variable is not set   
    

    Screenshot der Pipelineausführung mit fehlerhafter Überprüfung.

  7. Fügen Sie die Variablengruppe und die buildConfiguration-Variable wieder zur Variablengruppe hinzu, und führen Sie die Pipeline erneut aus. Es sollte erfolgreich ausgeführt werden.

Überprüfung

In diesem Lab haben Sie gelernt, wie Sie Pipelines für die sichere Verwendung von Variablen und Parametern konfigurieren und wie Sie obligatorische Variablen und Parameter überprüfen.