Автоматизация непрерывной интеграции с помощью выпусков Azure Pipelines
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
Ниже приведены шаги настройки выпуска Azure Pipelines для автоматизации развертывания фабрики данных в различные среды.
Требования
Подписка Azure, связанная с Azure DevOps Server (ранее Visual Studio Team Foundation Server) или Azure Repos, использующая конечную точку службы Azure Resource Manager.
Фабрика данных, настроенная с интеграцией Git Azure Repos.
Хранилище ключей Azure, содержащее секреты для каждой среды.
Настройка выпуска Azure Pipelines
В Azure DevOps откройте проект, настроенный с фабрикой данных.
В левой части страницы выберите Конвейеры, а затем Выпуски.
Выберите Новый конвейер или, если у вас есть конвейеры, выберите Новый, а затем Создать конвейер выпуска.
Выберите шаблон Пустое задание.
В поле Имя этапа введите имя своей среды.
Щелкните Добавить артефакт, а затем выберите репозиторий Git, настроенный с фабрикой данных для разработки. Выберите опубликовать ветвь репозитория для поля Ветвь по умолчанию. По умолчанию эта ветвь публикации имеет значение
adf_publish
. Для поля Версия по умолчанию выберите Последний из ветви по умолчанию.Добавьте задачу развертывания Azure Resource Manager.
В представлении этапа выберите Просмотр задач этапа.
Создайте задачу. Найдите параметр Развертывание шаблона ARM, а затем щелкните Добавить.
В задаче "Развертывание" выберите подписку, группу ресурсов и расположение для целевой фабрики данных. При необходимости предоставьте учетные данные.
В списке Действие выберите Create or update resource group (Создание или изменение группы ресурсов).
Нажмите кнопку с многоточием (…) рядом с полем Шаблон. Найдите шаблон Azure Resource Manager, созданный в ветви публикации настроенного репозитория Git. Найдите файл
ARMTemplateForFactory.json
в папке <FactoryName> ветви adf_publish. Дополнительные сведения об использовании связанных шаблонов ARM см. в статье "Развертывание связанных шаблонов ARM с помощью VSTS " и "Использование связанных шаблонов".Нажмите кнопку ... рядом с полем Параметры шаблона, чтобы выбрать файл параметров. Найдите файл
ARMTemplateParametersForFactory.json
в папке >FactoryName< ветви adf_publish.Нажмите кнопку ... рядом с полем Переопределить параметры шаблона и введите желаемые значения параметров для целевой фабрики данных. Для учетных данных, полученных из Azure Key Vault, заключите имя секрета в двойные кавычки. Например, если имя секрета — cred1, введите "$(cred1)" для этого значения.
В поле Режим развертывания выберите Добавочные.
Предупреждение
В режиме полного развертывания ресурсы, которые существуют в группе ресурсов, но не указаны в новом шаблоне Resource Manager, будут удалены. Дополнительные сведения см. в статье Режимы развертывания Azure Resource Manager.
Сохраните конвейер выпуска.
Для активации выпуска нажмите кнопку Создать выпуск. Сведения об автоматизации создания выпусков см. в статье Триггеры выпуска.
Внимание
В сценариях CI/CD тип среды выполнения интеграции (IR) в разных средах должен совпадать. Например, если у вас есть локальная среда IR в среде разработки, ей необходим также тип "Локальная" в других средах, таких как рабочая и тестовая. Аналогично, если вы совместно используете среды выполнения интеграции в нескольких средах, необходимо настроить их в качестве связанных локальных сред во всех средах (разработки, тестирования и рабочей).
Получение секретов из Azure Key Vault
Если вам нужно передать секреты в шаблоне Azure Resource Manager, рекомендуем использовать Azure Key Vault с выпуском Azure Pipelines.
Обработать секреты можно двумя способами.
Добавьте секреты в файл параметров. Дополнительные сведения см. в статье Использование Azure Key Vault для передачи защищенного значения параметра во время развертывания.
Создайте копию файла параметров, который отправляется в ветвь публикации. Задайте значения параметров, которые требуется получить из Key Vault, в следующем формате:
{ "parameters": { "azureSqlReportingDbPassword": { "reference": { "keyVault": { "id": "/subscriptions/<subId>/resourceGroups/<resourcegroupId> /providers/Microsoft.KeyVault/vaults/<vault-name> " }, "secretName": " < secret - name > " } } } }
При использовании этого метода секрет автоматически извлекается из хранилища ключей.
Файл параметров также должен находиться в ветви публикации.
Перед задачей развертывания Azure Resource Manager, описанной в предыдущем разделе, добавьте задачу Azure Key Vault:
На вкладке Задачи создайте задачу. Найдите Azure Key Vault и добавьте его.
В задаче Key Vault выберите подписку, в которой вы создали хранилище ключей. При необходимости предоставьте учетные данные, а затем выберите хранилище ключей.
Предоставление разрешений для агента Azure Pipelines
Задача Azure Key Vault может завершиться ошибкой отказа в доступе, если не заданы правильные разрешения. Загрузите журналы для выпуска и найдите PS1-файл с командой для предоставления разрешений агенту Azure Pipelines. Вы можете выполнить команду напрямую. Или скопировать идентификатор участника из файла и вручную добавить политику доступа на портале Azure. Get
и List
— минимальные требуемые разрешения.
Обновление активных триггеров
Чтобы установить модули Azure PowerShell, выполните инструкции из статьи Установка и настройка Azure PowerShell.
Предупреждение
Если вы не используете последние версии PowerShell и модуля Фабрики данных, во время выполнения команд могут возникнуть ошибки десериализации.
При попытке обновления активных триггеров развертывание может завершиться сбоем. Чтобы обновить активные триггеры, необходимо вручную остановить, а затем перезапустить их после развертывания. Это можно сделать с помощью задачи Azure PowerShell:
На вкладке Задачи выпуска добавьте задачу Azure PowerShell. Выберите версию задачи для последней версии Azure PowerShell.
Выберите подписку, в которой находится фабрика.
В качестве типа сценария выберите Путь к файлу сценария. Для этого необходимо сохранить сценарий PowerShell в репозитории. Следующий сценарий PowerShell можно использовать для остановки триггеров:
$triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName $triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }
Вы можете выполнить те же шаги (с функцией Start-AzDataFactoryV2Trigger
), чтобы перезапустить триггеры после развертывания.
Команда фабрики данных предоставила пример сценария, выполняемого до и после развертывания.
Примечание.
Используйте PrePostDeploymentScript.Ver2.ps1, если требуется отключить или включить только те триггеры, которые были изменены, а не отключать и не включать все триггеры во время CI/CD.
Предупреждение
Обязательно используйте PowerShell Core в задаче ADO для запуска скрипта.
Связанный контент
- Обзор непрерывной интеграции и доставки
- Повышение уровня шаблона Resource Manager для каждой среды вручную
- Использование пользовательских параметров с шаблоном Resource Manager
- Шаблоны Linked Resource Manager
- Использование рабочей среды исправлений
- Пример скрипта предварительного и после развертывания