Создание конвейера CI/CD для задания Stream Analytics с помощью Azure DevOps

В этой статье вы узнаете, как создавать конвейеры Azure DevOps build и Azure Stream Analytics release с помощью средств CI/CD.

Сделайте коммит проекта Stream Analytics

Прежде чем начать, зафиксируйте все проекты Stream Analytics в качестве исходных файлов в репозиторий Azure DevOps. Вы можете ссылаться на этот примерный репозиторий и исходный код проекта Stream Analytics в Azure Pipelines.

Действия, описанные в этой статье, используют проект Stream Analytics Visual Studio Code. Если вы используете проект Visual Studio, выполните действия, описанные в разделе автоматизируйте сборку, тестирование и развертывание задания Azure Stream Analytics с помощью инструментов CI/CD.

Создание конвейера сборки

В этом разделе вы узнаете, как создать конвейер сборки.

  1. Откройте веб-браузер и перейдите к проекту в Azure DevOps.

  2. В пункте Pipelines в меню навигации слева выберите Сборки. Затем выберите новый конвейер.

    Скриншот страницы Azure Pipelines Builds, показывающий, что конвейеры сборки не найдены, и кнопку

  3. Выберите " Использовать классический редактор" для создания конвейера без YAML.

  4. Выберите тип источника, командный проект и репозиторий. Затем нажмите кнопку "Продолжить".

    Показан скриншот страницы выбора источника в Azure Pipelines с Azure Repos Git, GitHub и другими параметрами, репозиторий, ветка и видимая кнопка

  5. На странице "Выбор шаблона" выберите пустое задание.

Установка пакета npm

  1. На странице "Задачи" выберите знак "плюс" рядом с заданием агента 1. Введите npm в поиске задач и выберите npm.

    Снимок экрана страницы задач Azure Pipelines с выбранным заданием агента 1, поисковой строкой npm и параметрами задачи npm, отображаемыми на правой части.

  2. Укажите отображаемое имя задачи. Измените параметр Команда на настраиваемый и введите следующую команду в Команда и аргументы. Не изменяйте другие параметры по умолчанию.

    install -g azure-streamanalytics-cicd
    

    Скриншот редактора задач Azure Pipelines, показывающий npm задачу с пользовательской командой для установки пакета azure-streamanalytics-cicd.

Чтобы использовать размещенный агент Linux, выполните следующие действия.

  1. Выберите спецификацию агента.

    Скриншот страницы задач Azure Pipelines, на которой для пула исполнителей установлено значение Azure Pipelines, а конфигурация агента указана как ubuntu-16.04.

  2. На странице "Задачи" выберите знак "плюс" рядом с заданием агента 1. Введите командную строку в поиске задач и выберите командную строку.

    Снимок экрана поиска задачи командной строки.

  3. Укажите отображаемое имя задачи. Введите следующую команду в скрипте. Не изменяйте другие параметры по умолчанию.

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

    Снимок экрана: ввод скрипта для задачи cmd.

Добавление задачи сборки

  1. На странице "Переменные" выберите +Добавить в переменные конвейера. Добавьте следующие переменные. Задайте следующие значения в соответствии с вашими предпочтениями.

    Имя переменной Значение
    projectRootPath [ИмяВашегоПроекта]
    выходной_путь (outputPath) Выходные данные
    путь развертывания Развернуть
  2. На странице "Задачи" выберите знак "плюс" рядом с заданием агента 1. Найдите командную строку.

  3. Укажите отображаемое имя задачи и введите следующий скрипт. Измените сценарий, указав имена вашего репозитория и вашего проекта.

    Примечание.

    Настоятельно рекомендуется использовать build --v2 команду для создания шаблона ARM для развертывания. Новый шаблон ARM имеет меньше параметров, сохраняя те же функции, что и предыдущая версия.

    Старый шаблон ARM скоро будет объявлен устаревшим. Только шаблоны, созданные с помощью build --v2, получают обновления и исправления ошибок.

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

    На следующем рисунке в качестве примера используется проект Stream Analytics Visual Studio Code.

    Скриншот редактора конвейера Azure DevOps с задачей командной строки для создания проекта Stream Analytics Visual Studio Code.

Добавление задачи теста

  1. На странице "Переменные" выберите +Добавить в переменные конвейера. Добавьте следующие переменные. Измените значения, указав ваш путь вывода и имя вашего репозитория.

    Имя переменной Значение
    testPath Тест

    Снимок экрана страницы переменных Azure Pipelines, показывающий список переменных и значений конвейера, с видимой кнопкой 'Добавить'.

  2. На странице "Задачи" выберите знак "плюс" рядом с заданием агента 1. Найдите командную строку.

  3. Укажите отображаемое имя задачи и введите следующий скрипт. Измените скрипт, указав имя вашего файла проекта и путь к файлу конфигурации теста.

    Дополнительные сведения о добавлении и настройке тестовых вариантов см. в инструкции по автоматическому тестированию .

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

    Скриншот конфигурации задачи в Azure Pipelines.

Добавление задачи копирования файлов

Добавьте задачу копирования файла, чтобы скопировать сводный тестовый файл и файлы шаблонов Azure Resource Manager в папку артефактов.

  1. На странице "Задачи" выберите + рядом с работой агента 1. Найдите файлы копирования. Затем введите следующие конфигурации. При назначении ** к Содержимому копируются все файлы результатов теста.

    Параметр Ввод
    Показать имя Копировать файлы в: $(build.artifactstagingdirectory)
    Исходная папка $(system.defaultworkingdirectory)/$(outputPath)/
    Содержимое **
    Целевая папка $(build.artifactstagingdirectory)
  2. Разверните параметры управления. Выберите "Даже если предыдущая задача завершилась с ошибкой, если сборка не была отменена" в Выполнить эту задачу.

    Скриншот настроек задачи в конвейере Azure DevOps, показывающий этап копирования файлов с заполненными полями исходной, копируемой и целевой папки.

Добавьте действие публикации артефактов сборки

  1. На странице "Задачи" выберите знак "плюс" рядом с заданием агента 1. Найдите опубликовать артефакты сборки и выберите опцию с иконкой черной стрелки.

  2. Разверните опции управления. Выберите «Даже если предыдущая задача завершилась ошибкой, если сборка не была отменена» в разделе «Выполнение этой задачи».

    Screenshot редактора задач Azure Pipelines с параметрами публикации артефактов сборки с расширенными параметрами управления.

Сохранение и запуск

После завершения добавления задачи пакета npm, командной строки, копирования файлов и задач публикации артефактов сборки выберите Сохранить и поставить в очередь. При появлении запроса введите комментарий сохранения и нажмите кнопку "Сохранить и запустить". Результаты тестирования можно скачать на странице Резюме потока данных.

Проверка результатов сборки и теста

Файл сводки теста и файлы шаблонов Azure Resource Manager можно найти в папке Published.

Скриншот страницы сводки Azure Pipelines с деталями ручного запуска, сведениями о репозитории, затраченным временем и опубликованной ссылкой на результат теста.

Снимок экрана страницы Azure Artifacts, показывающий вкладку

Выпуск версии с использованием Azure Pipelines

В этом разделе вы узнаете, как создать конвейер выпуска.

Откройте веб-браузер и перейдите к проекту Azure Stream Analytics Visual Studio Code.

  1. В разделе "Конвейеры" в меню навигации слева выберите "Выпуски". Затем нажмите New pipeline (Создать конвейер).

  2. Выберите "Начать с пустого задания".

  3. В поле "Артефакты" нажмите кнопку +Добавить артефакт. В разделе "Источник" выберите созданный конвейер сборки и нажмите кнопку "Добавить".

    Скриншот диалогового окна

  4. Измените имя Этап 1 на развертывание задачи в тестовую среду.

  5. Добавьте новый этап и назовите его Развертывание задачи в рабочую среду.

Добавление задач развертывания

Примечание.

Параметр шаблона Override неприменим к сборкам Azure Resource Manager версии 2, поскольку процесс передает параметры как объекты. Чтобы обойти это ограничение, добавьте сценарий PowerShell в конвейер, который считывает файл параметров в формате JSON и вносит необходимые изменения параметров.

Дополнительные сведения о добавлении скрипта PowerShell см. в разделе ConvertFrom-Json и Update Object в JSON-файле.

  1. В раскрывающемся списке задач выберите "Развернуть задание для тестирования среды".

  2. Выберите +, расположенный рядом с заданием агента, и выполните поиск развертывания шаблона ARM. Задайте следующие параметры:

    Параметр Значение
    Показать имя Развертывание myASAProject
    подписка Azure Выберите свою подписку.
    Действие Создание или обновление группы ресурсов
    Группа ресурсов Выберите имя тестовой группы ресурсов, содержащей задание Stream Analytics.
    Расположение Выберите расположение группы ресурсов тестовой среды.
    Расположение шаблона Связанный артефакт
    Шаблон $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    Параметры шаблона $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    Переопределение параметров шаблона -<arm_template_parameter> "your value". Определите параметры с помощью переменных.
    Режим развертывания Постепенный
  3. В раскрывающемся списке задач выберите «Развернуть задание в промышленной среде».

  4. Выберите +, расположенный рядом с заданием агента, и найдите развертывание шаблона ARM. Задайте следующие параметры:

    Параметр Значение
    Показать имя Развертывание myASAProject
    подписка Azure Выберите свою подписку.
    Действие Создание или обновление группы ресурсов
    Группа ресурсов Выберите имя рабочей группы ресурсов, содержащей задание Stream Analytics.
    Расположение Выберите расположение группы ресурсов производственной среды.
    Расположение шаблона Связанный артефакт
    Шаблон $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    Параметры шаблона $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    Переопределение параметров шаблона -<arm_template_parameter> "your value"
    Режим развертывания Постепенный

Создание выпуска

Чтобы создать выпуск, выберите "Создать выпуск " в правом верхнем углу.

Скриншот конвейера выпуска Azure Pipelines с артефактами, этапами и выделенной кнопкой «Создать выпуск».