Непрерывное развертывание с помощью Azure DevOps

Важно!

Пользовательские команды будут прекращены 30 апреля 2026 года. По состоянию на 30 октября 2023 г. в Speech Studio нельзя создавать новые приложения пользовательских команд. В связи с этим изменением LUIS будет прекращена 1 октября 2025 года. По состоянию на 1 апреля 2023 г. невозможно создать новые ресурсы LUIS.

В этой статье вы узнаете, как настроить непрерывное развертывание для приложений Пользовательских голосовых команд. Вам предоставляются скрипты для поддержки рабочего процесса CI/CD.

Необходимые условия

  • Приложение "Пользовательские голосовые команды команд для среды разработки (DEV)"
  • Приложение "Пользовательские голосовые команды команд для рабочей среды (PROD)"
  • Регистрация в Azure Pipelines

Экспорт, импорт и публикация

Скрипты размещаются в голосовом помощнике — пользовательские команды. Клонируйте скрипты из каталога Bash в репозиторий. Убедитесь, что вы используете тот же путь.

Настройка конвейера

  1. Перейдите в Azure DevOps — конвейеры и выберите "Создать конвейер"

  2. В разделе Подключение выберите расположение репозитория, в котором находятся эти скрипты.

  3. В разделе Выбор выберите свой репозиторий.

  4. В разделе Настройка выберите "Начальный конвейер".

  5. Затем вы получите редактор с файлом YAML, замените раздел "шаги" этим скриптом.

    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. Эти скрипты предполагают, что вы используете регион westus2, если это не так, обновите аргументы задач соответствующим образом.

    Screenshot that highlights the region value in the arguments.

  7. В раскрывающемся списке нажмите кнопку "Сохранить и запустить" и нажмите кнопку "Сохранить"

Подключение конвейера к приложению

  1. Перейдите на главную страницу конвейера.

  2. В раскрывающемся списке в правом верхнем углу выберите Изменить конвейер. Откроется редактор YAML.

  3. В правом верхнем углу рядом с кнопкой "Выполнить" выберите Переменные. Выберите новую переменную.

  4. Добавьте следующие переменные.

    «Переменная» Description
    SourceAppId Идентификатор приложения для среды разработки
    TargetAppId Идентификатор приложения для рабочей среды
    SubscriptionKey Ключ, используемый для обоих приложений
    Культура Язык и региональные параметры приложений (en-us)

    Send Activity payload

  5. Выберите "Выполнить", а затем выберите "Задание".

    Отобразится список выполняемых задач, который содержит пункты "Экспорт исходного приложения", "Импорт в целевое приложение" и "Обучение и публикация целевого приложения".

Развертывание из исходного кода

Если требуется сохранить определение приложения в репозитории, мы предоставляем скрипты для развернутых служб из исходного кода. Так как скрипты находятся в bash, если вы используете Windows, необходимо установить подсистему Linux.

Скрипты размещаются в голосовом помощнике — пользовательские команды. Клонируйте скрипты из каталога Bash в репозиторий. Убедитесь, что вы используете тот же путь.

Подготовка репозитория

  1. Создайте каталог для приложения; в нашем примере следует создать каталог с именем "Приложения".

  2. Обновите аргументы скрипта Bash ниже и запустите скрипт. Он импортирует модель диалогов приложения в файл myapp.json

    bash/export.sh -r <region> -s <subscriptionkey> -c en-us -a <appid> -f apps/myapp.json
    
    Аргументы Description
    регион Регион ресурса "Речь". Например: westus2
    subscriptionkey Ключ ресурса службы "Речь".
    appid Идентификатор приложения "Пользовательские голосовые команды", которое требуется экспортировать.
  3. Передайте эти изменения в репозиторий.

Настройка конвейера

  1. Перейдите в Azure DevOps — конвейеры и выберите "Создать конвейер"

  2. В разделе Подключение выберите расположение репозитория, в котором находятся эти скрипты.

  3. В разделе Выбор выберите свой репозиторий.

  4. В разделе Настройка выберите "Начальный конвейер".

  5. Затем вы получите редактор с файлом YAML, замените раздел "шаги" этим скриптом.

    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
    

    Примечание.

    Эти скрипты предполагают, что вы используете регион westus2. Если это не так, обновите аргументы задач соответствующим образом.

  6. В раскрывающемся списке нажмите кнопку "Сохранить и запустить" и нажмите кнопку "Сохранить"

Подключение конвейера к целевым приложениям

  1. Перейдите на главную страницу конвейера.

  2. В раскрывающемся списке в правом верхнем углу выберите Изменить конвейер. Откроется редактор YAML.

  3. В правом верхнем углу рядом с кнопкой "Выполнить" выберите Переменные. Выберите новую переменную.

  4. Добавьте следующие переменные.

    «Переменная» Description
    TargetAppId Идентификатор приложения для рабочей среды
    SubscriptionKey Ключ, используемый для обоих приложений
    Культура Язык и региональные параметры приложений (en-us)
  5. Выберите "Выполнить", а затем выберите "Задание". Отобразится список выполняемых задач, который содержит пункты "Импорт приложения" и "Обучение и публикация целевого приложения".

Следующие шаги