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


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

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

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

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

Требования

Настройка релиза в Azure Pipelines

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

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

    Выбор параметров

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

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

    Выберите пустое задание

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

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

    Добавление артефакта

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

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

      Просмотр этапа

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

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

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

    5. Нажмите кнопку с многоточием () рядом с полем Шаблон. Найдите шаблон Azure Resource Manager, сгенерированный в ветке публикации настроенного репозитория Git. Найдите файл ARMTemplateForFactory.json в папке <FactoryName> ветви adf_publish. Дополнительные сведения об использовании связанных шаблонов ARM см. в статье "Развертывание связанных шаблонов ARM с помощью VSTS " и "Использование связанных шаблонов".

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

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

    8. Выберите Инкрементный для режима развертывания.

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

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

      Рабочее развертывание Фабрики данных

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

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

    Выбор параметра

Внимание

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

    Добавление задачи Key Vault

Предоставление разрешений для агента 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 для запуска скрипта.