Continuous Deployment mit Azure DevOps

Wichtig

Benutzerdefinierte Befehle werden am 30. April 2026 eingestellt. Seit dem 30. Oktober 2023 können Sie keine neuen Anwendungen mit benutzerdefinierten Befehlen mehr in Speech Studio erstellen. Im Zusammenhang mit dieser Änderung wird LUIS am 1. Oktober 2025 eingestellt. Seit dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen mehr erstellen.

In diesem Artikel erfahren Sie, wie Sie eine Continuous Deployment für Ihre Anwendungen für benutzerdefinierte Befehle einrichten können. Die Skripts zur Unterstützung des CI/CD-Workflows werden Ihnen zur Verfügung gestellt.

Voraussetzung

  • Eine Anwendung für benutzerdefinierte Befehle für die Entwicklung (DEV)
  • Eine Anwendung für benutzerdefinierte Befehle für die Produktion (PROD)
  • Registrieren Sie sich für Azure Pipelines.

Exportieren/Importieren/Veröffentlichen

Die Skripts werden unter Sprachassistent – Benutzerdefinierte Befehle gehostet. Klonen Sie die Skripts im bash-Verzeichnis in Ihr Repository. Achten Sie darauf, dass Sie denselben Pfad beibehalten.

Einrichten einer Pipeline

  1. Wechseln Sie zu Azure DevOps – Pipelines, und klicken Sie auf „Neue Pipeline“.

  2. Wählen Sie im Abschnitt Verbinden den Speicherort Ihres Repositorys aus, an dem sich diese Skripts befinden.

  3. Wählen Sie im Abschnitt Auswählen Ihr Repository aus.

  4. Wählen Sie im Abschnitt Konfigurieren die Option „Starterpipeline“ aus.

  5. Als Nächstes erhalten Sie einen Editor mit einer YAML-Datei. Ersetzen Sie den Abschnitt „Schritte“ durch dieses Skript.

    steps:
    - task: Bash@3
      displayName: 'Export source app'
      inputs:
        targetType: filePath
        filePath: ./bash/export.sh
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(SourceAppId) -f ExportedDialogModel.json'
        workingDirectory: bash
        failOnStderr: true
    
    - task: Bash@3
      displayName: 'Import to target app'
      inputs:
        targetType: filePath
        filePath: ./bash/import.sh
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId) -f ExportedDialogModel.json'
        workingDirectory: bash
        failOnStderr: true
    
    - task: Bash@3
      displayName: 'Train and Publish target app'
      inputs:
        targetType: filePath
        filePath: './bash/train-and-publish.sh'
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId)'
        workingDirectory: bash
        failOnStderr: true
    
  6. Diese Skripts gehen davon aus, dass Sie die Region westus2 verwenden. Falls dies nicht der Fall ist, aktualisieren Sie die Argumente der Aufgaben entsprechend.

    Screenshot that highlights the region value in the arguments.

  7. Öffnen Sie in der Schaltfläche „Speichern und ausführen“ die Dropdownliste, und wählen Sie „Speichern“ aus.

Verbinden der Pipeline mit Ihrer Anwendung

  1. Navigieren Sie zur Hauptseite der Pipeline.

  2. Wählen Sie in der Dropdownliste oben rechts die Option Pipeline bearbeiten aus. Damit gelangen Sie zu einem YAML-Editor.

  3. Wählen Sie in der rechten oberen Ecke neben der Schaltfläche „Ausführen“ die Option Variablen aus. Wählen Sie New variable aus.

  4. Fügen Sie folgende Variablen hinzu:

    Variable BESCHREIBUNG
    SourceAppId ID der DEV-Anwendung
    TargetAppId ID der PROD-Anwendung
    SubscriptionKey Für beide Anwendungen verwendeter Schlüssel
    Kultur Kultur der Anwendungen (de-de)

    Send Activity payload

  5. Wählen Sie „Ausführen“ und dann den ausgeführten Auftrag aus.

    Es sollte eine Liste der ausgeführten Aufgaben mit folgenden Informationen angezeigt werden: „Quell-App exportieren“, „In Ziel-App importieren“ und „Ziel-App trainieren und veröffentlichen“.

Bereitstellen aus dem Quellcode

Für den Fall, dass Sie die Definition Ihrer Anwendung in einem Repository aufbewahren möchten, stellen wir die Skripts für Bereitstellungen aus dem Quellcode zur Verfügung. Da sich die Skripts in Bash befinden, müssen Sie, wenn Sie Windows verwenden, das Linux-Subsystem installieren.

Die Skripts werden unter Sprachassistent – Benutzerdefinierte Befehle gehostet. Klonen Sie die Skripts im bash-Verzeichnis in Ihr Repository. Achten Sie darauf, dass Sie denselben Pfad beibehalten.

Vorbereiten Ihres Repositorys

  1. Erstellen Sie ein Verzeichnis für Ihre Anwendung, in unserem Beispiel erstellen Sie ein Verzeichnis namens „Apps“.

  2. Aktualisieren Sie die Argumente des Bash-Skripts unten, und führen Sie es aus. Es importiert das Dialogmodell Ihrer Anwendung in die Datei „myapp.json“.

    bash/export.sh -r <region> -s <subscriptionkey> -c en-us -a <appid> -f apps/myapp.json
    
    Argumente BESCHREIBUNG
    region Ihre Speech-Ressourcenregion. Beispiel: westus2
    subscriptionkey Ihr Speech-Ressourcenschlüssel.
    appid Die zu exportierende ID der Anwendung für benutzerdefinierte Befehle.
  3. Pushen Sie diese Änderungen in Ihr Repository.

Einrichten einer Pipeline

  1. Wechseln Sie zu Azure DevOps – Pipelines, und klicken Sie auf „Neue Pipeline“.

  2. Wählen Sie im Abschnitt Verbinden den Speicherort Ihres Repositorys aus, an dem sich diese Skripts befinden.

  3. Wählen Sie im Abschnitt Auswählen Ihr Repository aus.

  4. Wählen Sie im Abschnitt Konfigurieren die Option „Starterpipeline“ aus.

  5. Als Nächstes erhalten Sie einen Editor mit einer YAML-Datei. Ersetzen Sie den Abschnitt „Schritte“ durch dieses Skript.

    steps:
    - task: Bash@3
      displayName: 'Import app'
      inputs:
        targetType: filePath
        filePath: ./bash/import.sh
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId) -f ../apps/myapp.json'
        workingDirectory: bash
        failOnStderr: true
    
    - task: Bash@3
      displayName: 'Train and Publish app'
      inputs:
        targetType: filePath
        filePath: './bash/train-and-publish.sh'
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId)'
        workingDirectory: bash
        failOnStderr: true
    

    Hinweis

    Diese Skripts gehen davon aus, dass Sie die Region „westus2“ verwenden. Falls dies nicht der Fall ist, aktualisieren Sie die Argumente der Aufgaben entsprechend.

  6. Öffnen Sie in der Schaltfläche „Speichern und ausführen“ die Dropdownliste, und wählen Sie „Speichern“ aus.

Verbinden der Pipeline mit Ihren Zielanwendungen

  1. Navigieren Sie zur Hauptseite der Pipeline.

  2. Wählen Sie in der Dropdownliste oben rechts die Option Pipeline bearbeiten aus. Damit gelangen Sie zu einem YAML-Editor.

  3. Wählen Sie in der rechten oberen Ecke neben der Schaltfläche „Ausführen“ die Option Variablen aus. Wählen Sie New variable aus.

  4. Fügen Sie folgende Variablen hinzu:

    Variable BESCHREIBUNG
    TargetAppId ID der PROD-Anwendung
    SubscriptionKey Für beide Anwendungen verwendeter Schlüssel
    Kultur Kultur der Anwendungen (de-de)
  5. Wählen Sie „Ausführen“ und dann den ausgeführten Auftrag aus. Es sollte eine Liste der ausgeführten Aufgaben mit folgenden Informationen angezeigt werden: „App importieren“ und „App trainieren und veröffentlichen“.

Nächste Schritte