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

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

Фиксация проекта Stream Analytics

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

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

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

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

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

  2. В разделе Pipelines (Конвейеры) в меню навигации слева выберите Builds (Сборки). Нажмите New pipeline (Создать конвейер).

    Create new Azure Pipeline

  3. Выберите Use the classic editor (Использовать классический редактор), чтобы создать конвейер без YAML.

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

    Select Azure Stream Analytics project

  5. На странице выбора шаблона выберите Empty job (Пустое задание).

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

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

    Select npm task

  2. Присвойте задаче отображаемое имя. Измените параметр Command (Команда) на Custom и введите следующую команду в поле Command and arguments (Команда и аргументы). В остальных полях оставьте значения по умолчанию.

    install -g azure-streamanalytics-cicd
    

    Enter configurations for npm task

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

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

    Screenshot of selecting agent specification.

  2. На странице задач щелкните знак "плюс" рядом с заданием агента 1. В поле поиска задач введите command line и щелкните появившийся пункт Command line.

    Screenshot of searching commandline task.

  3. Присвойте задаче отображаемое имя. В поле Script (Скрипт) введите следующую команду: В остальных полях оставьте значения по умолчанию.

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

    Screenshot of entering script for cmd task.

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

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

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

  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.

    Enter configurations for command-line task visual studio code

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

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

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

    Add pipeline variables

  2. На странице задач щелкните знак "плюс" рядом с заданием агента 1. Выполните поиск Command line.

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

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

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

    Enter configurations for command-line task

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

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

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

    Параметр Входные данные
    Отображаемое имя Копировать файлы в: $(build.artifactstagingdirectory)
    Исходная папка $(system.defaultworkingdirectory)/$(outputPath)/
    Содержимое **
    Целевая папка $(build.artifactstagingdirectory)
  2. Разверните раздел Control Options (Параметры управления). В разделе Run this task (Выполнить эту задачу) установите флажок Even if a previous task has failed, unless the build was canceled (Даже если предыдущая задача завершилась со сбоем, если сборка не была отменена).

    Enter configurations for copy task

Добавление задачи публикации артефактов сборки

  1. На странице задач щелкните знак "плюс" рядом с заданием агента 1. Выполните поиск задачи Publish build artifacts и выберите параметр, имеющий значок в виде черной стрелки.

  2. Разверните раздел Control Options (Параметры управления). В разделе Run this task (Выполнить эту задачу) установите флажок Even if a previous task has failed, unless the build was canceled (Даже если предыдущая задача завершилась со сбоем, если сборка не была отменена).

    Enter configurations for publish task

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

Завершив добавление задач пакета npm, командной строки, копирования файлов и публикации артефактов сборки, нажмите Save & queue (Сохранить и отправить в очередь). При появлении запроса введите комментарий сохранения и нажмите кнопку "Сохранить и запустить". Вы можете скачать результаты тестирования со страницы сводки в конвейере.

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

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

Check build and test result

Check artifacts

Выпуск с помощью Azure Pipelines

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

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

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

  2. Выберите Start with an Empty job (Начать с пустого задания).

  3. В поле Artifacts нажмите + Add an artifact (Добавить артефакт). В разделе Source (Источник) выберите созданный конвейер сборки и нажмите кнопку Добавить.

    Enter build pipeline artifact

  4. Измените имя этапа 1 на Deploy job to test environment (Развертывание задания в тестовой среде).

  5. Добавьте новый этап и присвойте ему имя Deploy job to production environment (Развертывание задания в рабочей среде).

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

Примечание.

Неприменимо Override template parameters для сборок ARM --v2, так как параметры передаются в качестве объектов. Чтобы устранить эту проблему, рекомендуется включить скрипт PowerShell в конвейер для чтения файла параметров в формате JSON и внести необходимые изменения параметров.

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

  1. В раскрывающемся списке задач выберите Deploy job to test environment (Развертывание задания в тестовой среде).

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

    Параметр Значение
    Отображаемое имя Развертывание myASAProject
    Подписка Azure. Выберите свою подписку.
    Действие Создание или обновление группы ресурсов
    Группа ресурсов Выберите имя для группы ресурсов тестовой среды, которая будет содержать задание Stream Analytics.
    Местонахождение Выберите расположение группы ресурсов тестовой среды.
    Расположение шаблона Связанный артефакт
    Template $(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> "ваше значение". Параметры можно определить с помощью переменных.
    Режим развертывания Приращение
  3. В раскрывающемся списке задач выберите Deploy job to production environment (Развертывание задания в рабочей среде).

  4. Нажмите знак + рядом с заданием агента и выполните поиск ARM template deployment. Задайте следующие параметры:

    Параметр Значение
    Отображаемое имя Развертывание myASAProject
    Подписка Azure. Выберите свою подписку.
    Действие Создание или обновление группы ресурсов
    Группа ресурсов Выберите имя для группы ресурсов рабочей среды, которая будет содержать задание Stream Analytics.
    Местонахождение Выберите расположение группы ресурсов рабочей среды.
    Расположение шаблона Связанный артефакт
    Template $(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> "ваше значение"
    Режим развертывания Приращение

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

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

Create a release using Azure Pipelines

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