Создание конвейера 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.
Создание конвейера сборки
В этом разделе вы узнаете, как создать конвейер сборки.
Откройте браузер и перейдите в свой проект в Azure DevOps.
В разделе Pipelines (Конвейеры) в меню навигации слева выберите Builds (Сборки). Нажмите New pipeline (Создать конвейер).
Выберите Use the classic editor (Использовать классический редактор), чтобы создать конвейер без YAML.
Выберите тип источника, командный проект и репозиторий. Затем нажмите Продолжить.
На странице выбора шаблона выберите Empty job (Пустое задание).
Установка пакета npm
На странице задач щелкните знак "плюс" рядом с заданием агента 1. Введите npm в поле поиска задач и выберите задачу npm.
Присвойте задаче отображаемое имя. Измените параметр Command (Команда) на Custom и введите следующую команду в поле Command and arguments (Команда и аргументы). В остальных полях оставьте значения по умолчанию.
install -g azure-streamanalytics-cicd
Если необходимо использовать размещенный агент Linux, выполните следующие действия.
Выберите спецификацию агента.
На странице задач щелкните знак "плюс" рядом с заданием агента 1. В поле поиска задач введите command line и щелкните появившийся пункт Command line.
Присвойте задаче отображаемое имя. В поле Script (Скрипт) введите следующую команду: В остальных полях оставьте значения по умолчанию.
sudo npm install -g azure-streamanalytics-cicd --unsafe-perm=true --allow-root
Добавление задачи сборки
На странице переменных в разделе переменных конвейера нажмите кнопку + Add (Добавить). Добавьте следующие переменные. Задайте следующие значения в соответствии с вашими предпочтениями.
Имя переменной Значение projectRootPath [ИмяВашегоПроекта] outputPath Выходные данные deployPath Развернуть На странице задач щелкните знак "плюс" рядом с заданием агента 1. Выполните поиск Command line.
Присвойте задаче отображаемое имя и введите следующий скрипт. Измените сценарий, указав имена вашего репозитория и вашего проекта.
Примечание.
Настоятельно рекомендуется использовать
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.
Добавление задачи теста
На странице переменных в разделе переменных конвейера нажмите кнопку + Add (Добавить). Добавьте следующие переменные. Измените значения, указав ваш путь вывода и имя вашего репозитория.
Имя переменной Значение testPath Тест На странице задач щелкните знак "плюс" рядом с заданием агента 1. Выполните поиск Command line.
Присвойте задаче отображаемое имя и введите следующий скрипт. Измените скрипт, указав имя вашего файла проекта и путь к файлу конфигурации теста.
Дополнительные сведения о добавлении и настройке тестовых случаев см. в инструкциях по автоматическому тестированию.
azure-streamanalytics-cicd test -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(testPath) -testConfigPath $(projectRootPath)/test/testConfig.json
Добавление задачи копирования файлов
Вам нужно добавить задачу копирования файлов для копирования файла сводки теста и файлов шаблонов Azure Resource Manager в папку артефактов.
На странице задач щелкните + рядом с заданием агента 1. Выполните поиск задачи Copy files. Затем введите следующие конфигурации. При назначении параметру Contents значения
**
все файлы результатов теста копируются.Параметр Входные данные Отображаемое имя Копировать файлы в: $(build.artifactstagingdirectory) Исходная папка $(system.defaultworkingdirectory)/$(outputPath)/
Содержимое **
Целевая папка $(build.artifactstagingdirectory)
Разверните раздел Control Options (Параметры управления). В разделе Run this task (Выполнить эту задачу) установите флажок Even if a previous task has failed, unless the build was canceled (Даже если предыдущая задача завершилась со сбоем, если сборка не была отменена).
Добавление задачи публикации артефактов сборки
На странице задач щелкните знак "плюс" рядом с заданием агента 1. Выполните поиск задачи Publish build artifacts и выберите параметр, имеющий значок в виде черной стрелки.
Разверните раздел Control Options (Параметры управления). В разделе Run this task (Выполнить эту задачу) установите флажок Even if a previous task has failed, unless the build was canceled (Даже если предыдущая задача завершилась со сбоем, если сборка не была отменена).
Сохранение и запуск
Завершив добавление задач пакета npm, командной строки, копирования файлов и публикации артефактов сборки, нажмите Save & queue (Сохранить и отправить в очередь). При появлении запроса введите комментарий сохранения и нажмите кнопку "Сохранить и запустить". Вы можете скачать результаты тестирования со страницы сводки в конвейере.
Проверка результатов сборки и теста
Файл сводки теста и файлы шаблонов Azure Resource Manager можно найти в папке Published.
Выпуск с помощью Azure Pipelines
В этом разделе вы узнаете, как создать конвейер выпуска.
Откройте браузер и перейдите в свой проект Visual Studio Code Azure Stream Analytics.
В разделе Pipelines (Конвейеры) в меню навигации слева выберите Releases (Выпуски). Затем нажмите New pipeline (Создать конвейер).
Выберите Start with an Empty job (Начать с пустого задания).
В поле Artifacts нажмите + Add an artifact (Добавить артефакт). В разделе Source (Источник) выберите созданный конвейер сборки и нажмите кнопку Добавить.
Измените имя этапа 1 на Deploy job to test environment (Развертывание задания в тестовой среде).
Добавьте новый этап и присвойте ему имя Deploy job to production environment (Развертывание задания в рабочей среде).
Добавление задач развертывания
Примечание.
Неприменимо Override template parameters
для сборок ARM --v2, так как параметры передаются в качестве объектов. Чтобы устранить эту проблему, рекомендуется включить скрипт PowerShell в конвейер для чтения файла параметров в формате JSON и внести необходимые изменения параметров.
Дополнительные рекомендации по добавлению скрипта PowerShell см. в статье ConvertFrom-Json и Update Object в JSON-файле.
В раскрывающемся списке задач выберите Deploy job to test environment (Развертывание задания в тестовой среде).
Нажмите знак + рядом с заданием агента и выполните поиск 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> "ваше значение". Параметры можно определить с помощью переменных. Режим развертывания Приращение В раскрывающемся списке задач выберите Deploy job to production environment (Развертывание задания в рабочей среде).
Нажмите знак + рядом с заданием агента и выполните поиск 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 (Создать выпуск) в правом верхнем углу.