Share via


Erstellen einer CI/CD-Pipeline für einen Stream Analytics-Auftrag mit Azure DevOps

In diesem Artikel erfahren Sie, wie Sie Build- und Release-Pipelines in Azure DevOps mit den CI/CD-Tools in Azure Stream Analytics erstellen.

Ausführen eines Commits für ein Stream Analytics-Projekt

Bevor Sie beginnen, führen Sie einen Commit für alle Stream Analytics-Projekte als Quelldateien in ein Azure DevOps-Repository aus. Sie können dabei auf dieses Beispielrepository und den Stream Analytics-Projektquellcode in Azure Pipelines zurückgreifen.

In den Schritten in diesem Artikel wird ein Stream Analytics Visual Studio Code-Projekt verwendet. Wenn Sie ein Visual Studio-Projekt verwenden, führen Sie die Schritte in Automate builds, tests, and deployments of an Azure Stream Analytics job using CI/CD tools (Automatisieren von Builds, Tests und Bereitstellungen eines Azure Stream Analytics-Auftrags mithilfe von CI/CD-Tools) aus.

Erstellen einer Buildpipeline

In diesem Abschnitt erfahren Sie, wie Sie eine Buildpipeline erstellen.

  1. Öffnen Sie einen Webbrowser, und navigieren Sie zum gewünschten Projekt in Azure DevOps.

  2. Wählen Sie unter Pipelines im linken Navigationsmenü Builds aus. Wählen Sie dann Neue Pipeline aus.

    Create new Azure Pipeline

  3. Wählen Sie Klassischen Editor verwenden aus, um eine Pipeline ohne YAML zu erstellen.

  4. Wählen Sie Ihren Quelltyp, das Teamprojekt und das Repository aus. Wählen Sie anschließend Weiter aus.

    Select Azure Stream Analytics project

  5. Wählen Sie auf der Seite Eine Vorlage auswählen den Eintrag Leerer Auftrag aus.

Installieren des npm-Pakets

  1. Wählen Sie auf der Registerkarte Aufgaben das Pluszeichen neben Agent-Auftrag 1 aus. Geben Sie in die Aufgabensuche npm ein, und wählen Sie npm aus.

    Select npm task

  2. Weisen Sie der Aufgabe einen Anzeigenamen zu. Ändern Sie die Option Befehl in benutzerdefiniert, und geben Sie den folgenden Befehl in Befehl und Argumente ein. Belassen Sie die übrigen Optionen in ihrer Standardeinstellung.

    install -g azure-streamanalytics-cicd
    

    Enter configurations for npm task

Führen Sie die folgenden Schritte aus, wenn Sie den gehosteten Linux-Agent verwenden müssen:

  1. Wählen Sie Ihre Agentspezifikation aus.

    Screenshot of selecting agent specification.

  2. Wählen Sie auf der Registerkarte Aufgaben das Pluszeichen neben Agent-Auftrag 1 aus. Geben Sie in der Aufgabensuche Befehlszeile ein, und wählen Sie die Befehlszeile aus.

    Screenshot of searching commandline task.

  3. Weisen Sie der Aufgabe einen Anzeigenamen zu. Geben Sie den folgenden Befehl in Skript ein. Belassen Sie die übrigen Optionen in ihrer Standardeinstellung.

    sudo npm install -g azure-streamanalytics-cicd --unsafe-perm=true --allow-root
    

    Screenshot of entering script for cmd task.

Hinzufügen einer Buildaufgabe

  1. Wählen Sie auf der Seite Variablen unter Pipelinevariablen die Option +Hinzufügen aus. Fügen Sie die folgenden Variablen hinzu: Legen Sie die folgenden Werte wie gewünscht fest:

    Variablenname Wert
    projectRootPath [IhrProjektname]
    outputPath Ausgabe
    deployPath Bereitstellen
  2. Wählen Sie auf der Registerkarte Aufgaben das Pluszeichen neben Agent-Auftrag 1 aus. Suchen Sie nach Befehlszeile.

  3. Geben Sie der Aufgabe einen Anzeigenamen, und geben Sie das folgende Skript ein. Ändern Sie das Skript mit dem Namen Ihres Repositorys und Ihrem Projektnamen.

    Hinweis

    Es wird dringend empfohlen, build --v2 um Generieren einer ARM-Vorlage für die Bereitstellung zu verwenden. Die neue ARM-Vorlage verfügt über weniger Parameter, bietet aber die gleiche Funktionalität wie die frühere Version.

    Beachten Sie, dass die frühere ARM-Vorlage bald veraltet ist. Nur mit build --v2 erstellte Vorlagen erhalten Updates und Fehlerbehebungen.

    azure-streamanalytics-cicd build --v2 -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(deployPath)
    

    In der Abbildung wird ein Stream Analytics Visual Studio Code-Projekt als Beispiel verwendet.

    Enter configurations for command-line task visual studio code

Hinzufügen einer Testaufgabe

  1. Wählen Sie auf der Seite Variablen unter Pipelinevariablen die Option +Hinzufügen aus. Fügen Sie die folgenden Variablen hinzu: Ändern Sie die Werte, und geben Sie Ihren Ausgabepfad und Repositorynamen ein.

    Variablenname Wert
    testPath Testen

    Add pipeline variables

  2. Wählen Sie auf der Registerkarte Aufgaben das Pluszeichen neben Agent-Auftrag 1 aus. Suchen Sie nach Befehlszeile.

  3. Geben Sie der Aufgabe einen Anzeigenamen, und geben Sie das folgende Skript ein. Ändern Sie das Skript, und geben Sie Ihren Projektdateinamen und den Pfad zur Testkonfigurationsdatei ein.

    Ausführliche Informationen zum Hinzufügen und Konfigurieren von Testfällen finden Sie in der Anleitung zu automatisierten Tests.

    azure-streamanalytics-cicd test -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(testPath) -testConfigPath $(projectRootPath)/test/testConfig.json 
    

    Enter configurations for command-line task

Hinzufügen einer Aufgabe zum Kopieren von Dateien

Sie müssen eine Aufgabe zum Kopieren von Dateien hinzufügen, um die Testzusammenfassungsdatei und die Azure Resource Manager-Vorlagendateien in den Artefaktordner zu kopieren.

  1. Wählen Sie auf der Registerkarte Aufgaben neben Agent-Auftrag 1+ aus. Suchen Sie nach Dateien kopieren. Geben Sie dann die folgenden Konfigurationen ein. Indem Sie **Inhalt zuweisen, werden alle Dateien der Testergebnisse kopiert.

    Parameter Eingabe
    Angezeigter Name Dateien in „:$(build.artifactstagingdirectory)“ kopieren
    Quellordner $(system.defaultworkingdirectory)/$(outputPath)/
    Inhalte **
    Zielordner $(build.artifactstagingdirectory)
  2. Erweitern Sie Steuerungsoptionen. Wählen Sie Auch wenn eine vorherige Aufgabe fehlgeschlagen ist, außer wenn der Build abgebrochen wurde unter Aufgabe ausführen aus.

    Enter configurations for copy task

Hinzufügen einer Aufgabe zum Veröffentlichen von Buildartefakten

  1. Wählen Sie auf der Registerkarte Aufgaben das Pluszeichen neben Agent-Auftrag 1 aus. Suchen Sie nach Buildartefakte veröffentlichen, und wählen Sie die Option mit dem schwarzen Pfeilsymbol aus.

  2. Erweitern Sie Steuerungsoptionen. Wählen Sie Auch wenn eine vorherige Aufgabe fehlgeschlagen ist, außer wenn der Build abgebrochen wurde unter Aufgabe ausführen aus.

    Enter configurations for publish task

Speichern und ausführen

Wenn Sie mit dem Hinzufügen der Aufgaben für npm-Paket, Befehlszeile, „Dateien kopieren“ und „Buildartefakte veröffentlichen“ fertig sind, wählen Sie Speichern und in Warteschlangen einreihen aus. Wenn Sie dazu aufgefordert werden, geben Sie einen Kommentar zum Speichern ein, und wählen Sie Speichern und ausführen aus. Sie können die Testergebnisse auf der Seite Zusammenfassung der Pipeline herunterladen.

Überprüfen des Builds und der Testergebnisse

Die Testzusammenfassungsdatei und Azure Resource Manager-Vorlagendateien finden Sie im Ordner Published.

Check build and test result

Check artifacts

Release mit Azure Pipelines

In diesem Abschnitt erfahren Sie, wie Sie eine Releasepipeline erstellen.

Öffnen Sie einen Webbrowser, und navigieren Sie zu Ihrem Azure Stream Analytics Visual Studio Code-Projekt.

  1. Wählen Sie unter Pipelines im linken Navigationsmenü Releases aus. Wählen Sie dann Neue Pipeline aus.

  2. Wählen Sie Mit leerem Auftrag beginnen aus.

  3. Wählen Sie im Feld Artefakte den Befehl + Artefakt hinzufügen aus. Wählen Sie unter Quelle die Buildpipeline aus, die Sie gerade erstellt haben, und wählen Sie Hinzufügen aus.

    Enter build pipeline artifact

  4. Ändern Sie den Namen von Stufe 1 in Auftrag in Testumgebung bereitstellen.

  5. Fügen Sie eine neue Stufe hinzu, und nennen Sie sie Auftrag in Produktionsumgebung bereitstellen.

Hinzufügen von Aufgaben zum Bereitstellen

Hinweis

Override template parameters gilt nicht für ARM-Builds mit dem Schalter „--v2“, da Parameter als Objekte übergeben werden. Um dies zu beheben, wird empfohlen, ein PowerShell-Skript in die Pipeline einzufügen, um die Parameterdatei als JSON zu lesen und die erforderlichen Parameteränderungen vorzunehmen.

Einen Leitfaden zum Hinzufügen des PowerShell-Skripts finden Sie unter ConvertFrom-Json und Aktualisieren von Objekten in JSON-Dateien.

  1. Wählen Sie im Aufgabendropdown Auftrag in Testumgebung bereitstellen aus.

  2. Wählen Sie das + neben dem Agent-Auftrag aus, und suchen Sie nach ARM-Vorlagenbereitstellung. Legen Sie die folgenden Parameter fest:

    Parameter Wert
    Angezeigter Name Deploy myASAProject
    Azure-Abonnement Wählen Sie Ihr Abonnement aus.
    Aktion Erstellen oder Aktualisieren einer Ressourcengruppe
    Resource group Auswählen eines Namens für die Testressourcengruppe, die ihren Stream Analytics-Auftrag enthalten soll.
    Ort Auswählen des Speicherorts Ihrer Testressourcengruppe.
    Speicherort der Vorlage Verknüpftes Artefakt
    Vorlage $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    Vorlagenparameter $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    Vorlagenparameter überschreiben <arm_template_parameter> „Ihr Wert“ Sie können die Parameter mithilfe von Variablendefinieren.
    Bereitstellungsmodus Inkrementell
  3. Wählen Sie im Aufgabendropdown Auftrag in Produktionsumgebung bereitstellen aus.

  4. Wählen Sie das + neben dem Agent-Auftrag aus, und suchen Sie nach ARM-Vorlagenbereitstellung. Legen Sie die folgenden Parameter fest:

    Parameter Wert
    Angezeigter Name Deploy myASAProject
    Azure-Abonnement Wählen Sie Ihr Abonnement aus.
    Aktion Erstellen oder Aktualisieren einer Ressourcengruppe
    Resource group Auswählen eines Namens für die Produktionsressourcengruppe, die ihren Stream Analytics-Auftrag enthalten soll.
    Ort Wählen Sie den Speicherort Ihrer Produktionsressourcengruppe aus.
    Speicherort der Vorlage Verknüpftes Artefakt
    Vorlage $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    Vorlagenparameter $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    Vorlagenparameter überschreiben <arm_template_parameter> „Ihr Wert“
    Bereitstellungsmodus Inkrementell

Erstellen eines Release

Um ein Release zu erstellen, wählen Sie Release erstellen in der oberen rechten Ecke aus.

Create a release using Azure Pipelines

Nächste Schritte