Pushen von Einstellungen an App Configuration mit Azure Pipelines

Mit der Aufgabe Azure App Configuration Push werden Schlüsselwerte aus einer Konfigurationsdatei in Ihren App Configuration-Speicher gepusht. Diese Aufgabe bietet umfassende Funktionen für die Pipeline, da Sie nun Einstellungen aus dem App Configuration-Speicher pullen sowie Einstellungen in den App Configuration-Speicher pushen können.

Voraussetzungen

Erstellen einer Dienstverbindung

Über eine Dienstverbindung können Sie von Ihrem Azure DevOps-Projekt aus auf Ressourcen in Ihrem Azure-Abonnement zugreifen.

  1. Navigieren Sie in Azure DevOps zu dem Projekt, das Ihre Zielpipeline enthält. Wählen Sie in der unteren linken Ecke Projekteinstellungen aus.

  2. Klicken Sie unter Pipelines auf Dienstverbindungen. Wählen Sie in der oberen rechten Ecke Neue Dienstverbindung aus.

  3. Wählen Sie unter Neue Dienstverbindung die Option Azure Resource Manager aus.

    Screenshot shows selecting Azure Resource Manager from the New service connection dropdown list.

  4. Wählen Sie im Dialogfeld Authentifizierungsmethode die Option Dienstprinzipal (automatisch) aus, um einen neuen Dienstprinzipal zu erstellen. Alternativ können Sie Dienstprinzipal (manuell) auswählen, um einen vorhandenen Dienstprinzipal zu verwenden.

  5. Geben Sie Ihr Abonnement, die Ressourcengruppe sowie einen Namen für Ihre Dienstverbindung ein.

Wenn Sie einen neuen Dienstprinzipal erstellt haben, suchen Sie den Namen des Dienstprinzipals, der der Dienstverbindung zugewiesen ist. Diesem Dienstprinzipal wird im nächsten Schritt eine neue Rollenzuweisung hinzugefügt.

  1. Navigieren Sie zu Projekteinstellungen>Dienstverbindungen.

  2. Wählen Sie die neue Dienstverbindung aus.

  3. Wählen Sie Dienstprinzipal verwalten aus.

  4. Beachten Sie den Wert unter Anzeigename.

    Screenshot shows the service principal display name.

Rollenzuweisung hinzufügen

Weisen Sie den im Rahmen der Aufgabe verwendeten Anmeldeinformationen die passenden App Configuration-Rollenzuweisungen zu, damit von der Aufgabe auf den App Configuration-Speicher zugegriffen werden kann.

  1. Gehen Sie zu Ihrem App Configuration-Zielspeicher.

  2. Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus.

  3. Wählen Sie im rechten Bereich Rollenzuweisungen hinzufügen aus.

    Screenshot shows the Add role assignments button.

  4. Wählen Sie für Rolle die Option App Configuration-Datenbesitzer aus. Diese Rolle ermöglicht der Aufgabe das Ausführen von Lese- und Schreibvorgängen für den App Configuration-Speicher.

  5. Wählen Sie den Dienstprinzipal aus, der der Dienstverbindung zugeordnet ist, die Sie im vorherigen Abschnitt erstellt haben.

    Screenshot shows the Add role assignment dialog.

  6. Wählen Sie Überprüfen und zuweisen aus.

Verwenden in Builds

In diesem Abschnitt erfahren Sie, wie Sie die Aufgabe „Azure App Configuration Push“ in einer Azure DevOps-Buildpipeline verwenden.

  1. Klicken Sie auf Pipelines>Pipelines, um zur Seite für Buildpipelines zu navigieren. Die Dokumentation zu Buildpipelines finden Sie hier.
    • Wenn Sie eine neue Buildpipeline erstellen, wählen Sie im letzten Schritt des Vorgangs auf der Registerkarte Review (Überprüfen) auf der rechten Seite der Pipeline Show assistant (Assistenten anzeigen) aus.

      Screenshot shows the Show assistant button for a new pipeline.

    • Wenn Sie eine vorhandene Buildpipeline verwenden, klicken Sie oben rechts auf die Schaltfläche Bearbeiten.

      Screenshot shows the Edit button for an existing pipeline.

  2. Suchen Sie nach der Aufgabe Azure App Configuration Push.

    Screenshot shows the Add Task dialog with Azure App Configuration Push in the search box.

  3. Konfigurieren Sie die erforderlichen Parameter für die Aufgabe, um die Schlüsselwerte aus der Konfigurationsdatei in den App Configuration-Speicher zu pushen. Die Parameter werden weiter unten im Abschnitt Parameter sowie in QuickInfos neben dem jeweiligen Parameter erläutert.

    Screenshot shows the app configuration push task parameters.

  4. Speichern Sie Ihre Angaben, und reihen Sie einen Build in die Warteschlange ein. Im Buildprotokoll werden alle Fehler angezeigt, die ggf. bei der Aufgabenausführung aufgetreten sind.

Verwenden in Releases

In diesem Abschnitt erfahren Sie, wie Sie die Push-Aufgabe „Azure App Configuration“ in Azure DevOps-Releasepipelines verwenden.

  1. Wählen Sie Pipelines>Releases aus, um zur Seite für Releasepipelines zu navigieren. Die Dokumentation zu Releasepipelines finden Sie hier.
  2. Wählen Sie eine vorhandene Releasepipeline aus. Sollten Sie über keine verfügen, wählen Sie + Neu aus, um eine zu erstellen.
  3. Wählen Sie rechts oben die Schaltfläche Bearbeiten aus, um die Releasepipeline zu bearbeiten.
  4. Wählen Sie im Dropdown Tasks (Aufgaben) die Stage (Phase) aus, in der Sie die Aufgabe hinzufügen möchten. Weitere Informationen zu Phasen finden Sie hier.

    Screenshot shows the selected stage in the Tasks dropdown.

  5. Klicken Sie neben dem Auftrag, dem Sie eine neue Aufgabe hinzufügen möchten, auf + .

    Screenshot shows the plus button next to the job.

  6. Geben Sie im Dialogfeld Add tasks (Aufgaben hinzufügen) die Zeichenfolge Azure App Configuration Push in das Suchfeld ein, und wählen Sie es aus.
  7. Konfigurieren Sie die erforderlichen Parameter in der Aufgabe, um Ihre Schlüsselwerte aus Ihrer Konfigurationsdatei in Ihren App Configuration-Speicher zu pushen. Die Parameter werden weiter unten im Abschnitt Parameter sowie in QuickInfos neben dem jeweiligen Parameter erläutert.
  8. Speichern Sie Ihre Angaben, und reihen Sie ein Release in die Warteschlange ein. Im Releaseprotokoll werden alle Fehler angezeigt, die ggf. bei der Aufgabenausführung aufgetreten sind.

Parameter

Von der Aufgabe „Azure App Configuration Push“ werden folgende Parameter verwendet:

  • Azure-Abonnement: Eine Dropdownliste mit Ihren verfügbaren Azure-Dienstverbindungen. Klicken Sie zum Aktualisieren der Liste mit den verfügbaren Azure-Dienstverbindungen rechts neben dem Textfeld auf die Schaltfläche Refresh Azure subscription (Azure-Abonnement aktualisieren).
  • App Configuration-Endpunkt: Eine Dropdownliste, in die Ihre verfügbaren Konfigurationsspeicherendpunkte unter dem ausgewählten Abonnement geladen werden. Klicken Sie zum Aktualisieren der Liste mit den verfügbaren Konfigurationsspeicherendpunkten rechts neben dem Textfeld auf die Schaltfläche App Configuration-Endpunkt aktualisieren.
  • Konfigurationsdateipfad: Der Pfad zu Ihrer Konfigurationsdatei. Der Parameter Konfigurationsdateipfad beginnt am Stamm des Dateirepositorys. Sie können Ihr Buildartefakt durchsuchen, um eine Konfigurationsdatei auszuwählen. (Verwenden Sie hierzu die Schaltfläche ... rechts neben dem Textfeld.) Die unterstützten Dateiformate hängen vom Dateiinhaltsprofil ab. Für das Standardprofil sind die unterstützten Dateiformate YAML, JSON und PROPERTIES. Für das KvSet-Profil ist das unterstützte Dateiformat JSON.
  • Dateiinhaltsprofil: Das Inhaltsprofil der Konfigurationsdatei. Der Standardwert lautet Standard (Default).
    • Standard (Default): Bezieht sich auf die herkömmlichen Konfigurationsdateiformate, die von Anwendungen direkt verwendet werden können.
    • KVSet: Bezieht sich auf ein Dateischema, das alle Eigenschaften eines App Configuration-Schlüssel-Wert-Paars enthält, einschließlich Schlüssel, Wert, Bezeichnung, Inhaltstyp und Tags. Die Aufgabenparameter „Trennzeichen“, „Label“, „Inhaltstyp“, „Präfix“, „Tags“ und „Tiefe“ (Separator, Label, Content Type, Prefix, Tags, Depth) sind bei Verwendung des Kvset-Profils nicht anwendbar.
  • Importmodus: Der Standardwert ist Alle. Bestimmt das Verhalten beim Importieren von Schlüssel-Wert-Paaren.
    • Alle: Importiert alle Schlüssel-Wert-Paare aus der Konfigurationsdatei in App Configuration.
    • Ignore-Match (Übereinstimmung ignorieren): Importiert nur Einstellungen, für die kein übereinstimmendes Schlüssel-Wert-Paar in App Configuration vorhanden ist. Übereinstimmende Schlüssel-Wert-Paare werden als Schlüssel-Wert-Paare mit demselben Schlüssel, derselben Bezeichnung, demselben Wert, Inhaltstyp und denselben Tags betrachtet.
  • Trockenlauf (Dry Run): Der Standardwert ist Deaktiviert.
    • Aktiviert (Checked): Es werden keine Updates für App Configuration ausgeführt. Stattdessen werden alle Updates, die bei einem normalen Lauf ausgeführt worden wären, zur Überprüfung in die Konsole ausgegeben.
    • Deaktiviert (Unchecked): Führt alle Updates für App Configuration ohne Ausgabe in die Konsole aus.
  • Trennzeichen: Das Trennzeichen zum Vereinfachen von JSON- und YML-Dateien.
  • Tiefe: Die Tiefe für die Vereinfachung der JSON- und YML-Dateien.
  • Präfix: Eine Zeichenfolge, die jedem Schlüssel vorangestellt wird, der in den App Configuration-Speicher gepusht wird.
  • Bezeichnung: Eine Zeichenfolge, die jedem Schlüsselwert als Bezeichnung im App Configuration-Speicher hinzugefügt wird.
  • Inhaltstyp: Eine Zeichenfolge, die jedem Schlüsselwert als Inhaltstyp im App Configuration-Speicher hinzugefügt wird.
  • Tags: Ein JSON-Objekt im Format {"tag1":"val1", "tag2":"val2"} zum Definieren von Tags, die den einzelnen Schlüsselwerten hinzugefügt werden, die in Ihren App Configuration-Speicher gepusht werden.
  • Schlüssel-Wert-Paare löschen, die nicht in der Konfigurationsdatei enthalten sind: Der Standardwert ist Deaktiviert. Das Verhalten dieser Option hängt vom Inhaltsprofil der Konfigurationsdatei ab.
    • Aktiviert:
      • Standardinhaltsprofil: Entfernt alle Schlüssel-Wert-Paare, die sowohl dem angegebenen Präfix als auch der angegebenen Bezeichnung entsprechen, aus dem App Configuration-Speicher, bevor neue Schlüssel-Wert-Paare aus der Konfigurationsdatei gepusht werden.
      • Kvset-Inhaltsprofil: Entfernt alle Schlüssel-Wert-Paare, die nicht in der Konfigurationsdatei enthalten sind, aus dem App Configuration-Speicher, bevor neue Schlüssel-Wert-Paare aus der Konfigurationsdatei gepusht werden.
    • Nicht aktiviert: Alle Schlüsselwerte werden aus der Konfigurationsdatei in den App Configuration-Speicher gepusht, und alles andere im App Configuration-Speicher bleibt erhalten.

Problembehandlung

Sollte ein unerwarteter Fehler auftreten, können Sie Debugprotokolle aktivieren, indem Sie die Pipelinevariable system.debug auf true festlegen.

Häufig gestellte Fragen

Wie kann ich mehrere Konfigurationsdateien hochladen?

Erstellen Sie innerhalb der gleichen Pipeline mehrere Instanzen der Aufgabe „Azure App Configuration Push“, um mehrere Konfigurationsdateien in den App Configuration-Speicher zu pushen.

Wie kann ich mithilfe dieser Aufgabe Key Vault-Verweise oder Featureflags erstellen?

Je nach ausgewähltem Dateiinhaltsprofil finden Sie Beispiele unter Azure App Configuration-Unterstützung für die Konfigurationsdatei.

Warum erhalte ich einen Fehler vom Typ 409, wenn ich versuche, Schlüsselwerte in meinen Konfigurationsspeicher zu pushen?

Eine Fehlermeldung vom Typ „409 – Konflikt“ wird ausgegeben, wenn die Aufgabe versucht, einen Schlüsselwert zu entfernen oder zu überschreiben, der im App Configuration-Speicher gesperrt ist.