Поделиться через


Автоматизация непрерывной интеграции с помощью выпусков Azure Pipelines

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

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

Requirements

  • Подписка Azure, связанная с Azure DevOps Server (ранее Visual Studio Team Foundation Server) или Azure Repos, использующая конечную точку службы Azure Resource Manager.

  • Фабрика данных, настроенная с интеграцией Git Azure Repos.

  • Хранилище ключей Azure, содержащее секреты для каждой среды.

Настройка выпуска Azure Pipelines

  1. В Azure DevOps откройте проект, настроенный с фабрикой данных.

  2. В левой части страницы выберите Конвейеры, а затем Выпуски.

    Select Pipelines, Releases

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

  4. Выберите шаблон Пустое задание.

    Select Empty job

  5. В поле Имя этапа введите имя своей среды.

  6. Щелкните Добавить артефакт, а затем выберите репозиторий Git, настроенный с фабрикой данных для разработки. Выберите опубликовать ветвь репозитория для поля Ветвь по умолчанию. По умолчанию эта ветвь публикации имеет значение adf_publish. Для поля Версия по умолчанию выберите Последний из ветви по умолчанию.

    Add an artifact

  7. Добавьте задачу развертывания Azure Resource Manager.

    a. В представлении этапа выберите Просмотр задач этапа.

    Stage view

    b. Создайте задачу. Найдите параметр Развертывание шаблона ARM, а затем щелкните Добавить.

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

    d. В списке Действие выберите Create or update resource group (Создание или изменение группы ресурсов).

    д) Нажмите кнопку с многоточием () рядом с полем Шаблон. Найдите шаблон Azure Resource Manager, созданный в ветви публикации настроенного репозитория Git. Найдите файл ARMTemplateForFactory.json в папке <FactoryName> ветви adf_publish.

    е) Нажмите кнопку ... рядом с полем Параметры шаблона, чтобы выбрать файл параметров. Найдите файл ARMTemplateParametersForFactory.json в папке >FactoryName< ветви adf_publish.

    ж. Нажмите кнопку ... рядом с полем Переопределить параметры шаблона и введите желаемые значения параметров для целевой фабрики данных. Для учетных данных, полученных из Azure Key Vault, заключите имя секрета в двойные кавычки. Например, если имя секрета — cred1, введите "$(cred1)" для этого значения.

    h. В поле Режим развертывания выберите Добавочные.

    Предупреждение

    В режиме полного развертывания ресурсы, которые существуют в группе ресурсов, но не указаны в новом шаблоне Resource Manager, будут удалены. Дополнительные сведения см. в статье Режимы развертывания Azure Resource Manager.

    Data Factory Prod Deployment

  8. Сохраните конвейер выпуска.

  9. Для активации выпуска нажмите кнопку Создать выпуск. Сведения об автоматизации создания выпусков см. в статье Триггеры выпуска.

    Select Create release

Важно!

В сценариях 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:

    1. На вкладке Задачи создайте задачу. Найдите Azure Key Vault и добавьте его.

    2. В задаче Key Vault выберите подписку, в которой вы создали хранилище ключей. При необходимости предоставьте учетные данные, а затем выберите хранилище ключей.

    Add a Key Vault task

Предоставление разрешений для агента Azure Pipelines

Задача Azure Key Vault может завершиться ошибкой отказа в доступе, если не заданы правильные разрешения. Загрузите журналы для выпуска и найдите PS1-файл с командой для предоставления разрешений агенту Azure Pipelines. Вы можете выполнить команду напрямую. Или скопировать идентификатор участника из файла и вручную добавить политику доступа на портале Azure. Get и List — минимальные требуемые разрешения.

Обновление активных триггеров

Чтобы установить модули Azure PowerShell, выполните инструкции из статьи Установка и настройка Azure PowerShell.

Предупреждение

Если вы не используете последние версии PowerShell и модуля Фабрики данных, во время выполнения команд могут возникнуть ошибки десериализации.

При попытке обновления активных триггеров развертывание может завершиться сбоем. Чтобы обновить активные триггеры, необходимо вручную остановить, а затем перезапустить их после развертывания. Это можно сделать с помощью задачи Azure PowerShell:

  1. На вкладке Задачи выпуска добавьте задачу Azure PowerShell. Выберите версию задачи для последней версии Azure PowerShell.

  2. Выберите подписку, в которой находится фабрика.

  3. В качестве типа сценария выберите Путь к файлу сценария. Для этого необходимо сохранить сценарий 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 для запуска скрипта.