Automatisieren von Continuous Integration mit Azure Pipelines-Releases
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
Im Folgenden finden Sie eine Anleitung zum Einrichten eines Azure Pipelines-Release, mit dem die Bereitstellung einer Data Factory für mehrere Umgebungen automatisiert wird.
Requirements (Anforderungen)
Ein Azure-Abonnement, das mit Azure DevOps Server (vormals Visual Studio Team Foundation Server) oder Azure Repos verknüpft ist und für das der Azure Resource Manager-Dienstendpunkt verwendet wird
Eine Data Factory-Instanz mit konfigurierter Azure Repos Git-Integration
Ein Azure-Schlüsseltresor mit den Geheimnissen für jede Umgebung
Einrichten eines Azure-Pipelines-Release
Öffnen Sie in Azure DevOps das Projekt, das für Ihre Data Factory konfiguriert ist.
Wählen Sie links auf der Seite die Option Pipelines und dann Releases aus.
Wählen Sie Neue Pipeline oder – falls Pipelines vorhanden sind – die Option Neu und dann Neue Releasepipeline aus.
Wählen Sie die Vorlage Leere Stufe aus.
Geben Sie im Feld Name der Stufe den Namen der Umgebung ein.
Wählen Sie Artefakt hinzufügen und dann das Git-Repository aus, das mit Ihrer Entwicklungs-Data Factory konfiguriert wurde. Wählen Sie den Branch für die Veröffentlichung des Repositorys für den Standardbranch aus. Dieser Branch für die Veröffentlichung lautet standardmäßig
adf_publish
. Wählen Sie unter Standardversion die Option Letztes Element aus Standardbranch aus.Fügen Sie eine Azure Resource Manager-Bereitstellungsaufgabe hinzu:
Wählen Sie in der Stufenansicht die Option Stufenaufgaben anzeigen aus.
Erstellen Sie eine neue Aufgabe. Suchen Sie nach AMR-Vorlagenbereitstellung, und wählen Sie dann Hinzufügen aus.
Wählen Sie unter der Aufgabe „Bereitstellung“ das Abonnement, die Ressourcengruppe und den Speicherort für das Data Factory-Ziel aus. Geben Sie die Anmeldeinformationen an, falls dies erforderlich ist.
Wählen Sie in der Liste Aktion den Eintrag Create or update resource group (Ressourcengruppe erstellen oder aktualisieren) aus.
Wählen Sie neben dem Feld Vorlage die Schaltfläche mit den Auslassungszeichen ( … ) aus. Suchen Sie nach der Azure Resource Manager-Vorlage, die in Ihrem Branch für die Veröffentlichung des konfigurierten Git-Repositorys generiert wird. Suchen Sie im Ordner <FactoryName> von Branch „adf_publish“ nach der Datei
ARMTemplateForFactory.json
. Weitere Informationen zur Verwendung verknüpfter ARM-Vorlagen finden Sie unter Bereitstellen verknüpfter ARM-Vorlagen mit VSTS und Verwenden verknüpfter Vorlagen.Wählen Sie … neben dem Feld Vorlagenparameter aus, um die Parameterdatei auszuwählen. Suchen Sie im Ordner >FactoryName< von Branch „adf_publish“ nach der Datei
ARMTemplateParametersForFactory.json
.Wählen Sie … neben dem Feld Vorlagenparameter überschreiben aus und geben Sie die gewünschten Parameterwerte für die Ziel-Data Factory ein. Geben Sie für Anmeldeinformationen aus Azure Key Vault den Namen des Geheimnisses in doppelten Anführungszeichen ein. Geben Sie als Wert hier beispielsweise Folgendes ein, wenn der Name des Geheimnisses „cred1“ lautet: "$(cred1)" .
Wählen Sie unter Bereitstellungsmodus die Option Inkrementell aus.
Warnung
Im vollständigen Bereitstellungsmodus werden Ressourcen, die in der Ressourcengruppe vorhanden, aber in der neuen Resource Manager-Vorlage nicht angegeben sind, gelöscht. Weitere Informationen finden Sie unter Azure Resource Manager-Bereitstellungsmodi.
Speichern Sie die Releasepipeline.
Wählen Sie zum Auslösen eines Release die Option Release erstellen aus. Informationen zum Automatisieren der Erstellung von Releases finden Sie unter Azure DevOps-Releasetrigger.
Wichtig
In CI/CD-Szenarien muss der Typ der Integration Runtime (IR) in unterschiedlichen Umgebungen identisch sein. Wenn sich in Ihrer Entwicklungsumgebung beispielsweise eine selbstgehostete IR befindet, muss diese IR auch in anderen Umgebungen, z. B. Test- und Produktionsumgebungen, den Typ „Selbstgehostet“ aufweisen. Wenn Sie Integration Runtimes in mehreren Stufen freigeben, müssen Sie die Integration Runtimes in allen Umgebungen, z. B. Entwicklungs-, Test- und Produktionsumgebungen, als „Verknüpft selbstgehostet“ konfigurieren.
Abrufen von Geheimnissen aus Azure Key Vault
Wenn Sie Geheimnisse in einer Azure Resource Manager-Vorlage übergeben möchten, empfehlen wir Ihnen die Verwendung von Azure Key Vault mit dem Azure Pipelines-Release.
Es gibt zwei Möglichkeiten, um Geheimnisse zu verarbeiten:
Fügen Sie die Geheimnisse der Parameterdatei hinzu. Weitere Informationen finden Sie unter Verwenden von Azure Key Vault zum Übergeben eines sicheren Parameterwerts während der Bereitstellung.
Erstellen Sie eine Kopie der Parameterdatei, die in den Branch für die Veröffentlichung hochgeladen wird. Legen Sie die Werte der Parameter, die Sie aus Key Vault abrufen möchten, in diesem Format fest:
{ "parameters": { "azureSqlReportingDbPassword": { "reference": { "keyVault": { "id": "/subscriptions/<subId>/resourceGroups/<resourcegroupId> /providers/Microsoft.KeyVault/vaults/<vault-name> " }, "secretName": " < secret - name > " } } } }
Bei dieser Methode wird das Geheimnis per Pullvorgang automatisch aus dem Schlüsseltresor abgerufen.
Die Parameterdatei muss sich auch im Branch für die Veröffentlichung befinden.
Fügen Sie vor der im vorherigen Abschnitt beschriebenen Aufgabe für die Azure Resource Manager-Bereitstellung eine Azure Key Vault-Aufgabe hinzu:
Erstellen Sie auf der Registerkarte Tasks eine neue Aufgabe. Suchen Sie nach Azure Key Vault, und fügen Sie die Komponente hinzu.
Wählen Sie in der Key Vault-Aufgabe das Abonnement aus, unter dem Sie den Schlüsseltresor erstellt haben. Geben Sie bei Bedarf Anmeldeinformationen an, und wählen Sie anschließend den Schlüsseltresor aus.
Gewähren von Berechtigungen für den Azure Pipelines-Agent
Unter Umständen tritt bei der Azure Key Vault-Aufgabe ein Fehler vom Typ „Zugriff verweigert“ auf, wenn nicht die richtigen Berechtigungen festgelegt wurden. Laden Sie die Protokolle für das Release herunter, und suchen Sie nach der PS1-Datei, die den Befehl zum Erteilen von Berechtigungen für den Azure Pipelines-Agent enthält. Sie können den Befehl direkt ausführen. Alternativ können Sie die Prinzipal-ID aus der Datei kopieren und die Zugriffsrichtlinie manuell im Azure-Portal hinzufügen. Die Berechtigungen Get
und List
sind mindestens erforderlich.
Aktualisieren von aktiven Triggern
Installieren Sie die aktuellen Azure PowerShell-Module, indem Sie die Anweisungen unter Installieren und Konfigurieren von Azure PowerShell befolgen.
Warnung
Wenn Sie nicht die neuesten Versionen von PowerShell und des Data Factory-Moduls verwenden, treten beim Ausführen der Befehle möglicherweise Deserialisierungsfehler auf.
Für die Bereitstellung kann ein Fehler auftreten, wenn Sie versuchen, aktive Trigger zu aktualisieren. Zum Aktualisieren von aktiven Triggern müssen Sie sie manuell beenden und nach der Bereitstellung wieder starten. Dies ist über eine Azure PowerShell-Aufgabe möglich:
Fügen Sie auf der Registerkarte Tasks des Release eine Azure PowerShell-Aufgabe hinzu. Wählen Sie die Aufgabenversion der neuesten Azure PowerShell-Version aus.
Wählen Sie das Abonnement aus, in dem sich Ihre Factory befindet.
Wählen Sie Pfad zur Skriptdatei als Skripttyp aus. Hierfür müssen Sie Ihr PowerShell-Skript in Ihrem Repository speichern. Das folgende PowerShell-Skript kann zum Beenden von Triggern verwendet werden:
$triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName $triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }
Sie können ähnliche Schritte ausführen (mit der Funktion Start-AzDataFactoryV2Trigger
), um die Trigger nach der Bereitstellung neu zu starten.
Das Data Factory-Team hat ein Beispielskript für vor und nach der Bereitstellung hinzugefügt.
Hinweis
Verwenden Sie PrePostDeploymentScript.Ver2.ps1, wenn Sie nur die Trigger aus-/einschalten möchten, die geändert wurden, anstatt alle Trigger während CI/CD aus-/einzuschalten.
Warnung
Stellen Sie sicher, dass Sie PowerShell Core in der ADO-Aufgabe verwenden, um das Skript auszuführen
Zugehöriger Inhalt
- Continuous Integration und Continuous Delivery (CI/CD) – Übersicht
- Manuelles Höherstufen einer Resource Manager-Vorlage für jede Umgebung
- Verwenden benutzerdefinierter Parameter mit einer Resource Manager-Vorlage
- Verknüpfte Resource Manager-Vorlagen
- Verwenden einer Hotfix-Produktionsumgebung
- Beispielskript für vor und nach der Bereitstellung