Как автоматизировать обновление учетных данных Azure Data Factory (ADF) с разработки на продакшен с использованием Azure DevOps?

Вопрос или проблема

Я работаю с Azure Data Factory (ADF) и мне нужно автоматизировать перенос учетных данных (например, строки подключения Linked Service, секреты) из развивающейся среды в производственную с использованием Azure DevOps. Я хочу создать конвейер выпуска, который:

  • Автоматически обновляет учетные данные в связанных службах ADF.
  • Использует Azure Key Vault для управления конфиденциальной информацией (такими как пароли или строки подключения).
  • Безопасно переносит учетные данные из развивающейся среды в производственную без жесткой кодировки в конвейере.

Каков лучший способ достичь этого с использованием ARM-шаблонов и Azure DevOps? Я также хотел бы понять, как переопределять секреты Key Vault между средами во время развертывания.

Буду признателен за любые советы или пошаговые примеры по настройке этого конвейера выпуска!

Что я уже пробовал:

У меня есть такая настройка в DevOps для развертывания конвейеров.
введите описание изображения здесь

Ответ или решение

Автоматизация обновления учетных данных Azure Data Factory (ADF) с помощью Azure DevOps

Для автоматизации продвижения учетных данных из среды разработки в производственную, используя Azure DevOps и Azure Data Factory, можно следовать следующему этапному процессу.

Шаг 1: Настройка Azure Key Vault

  1. Создайте Azure Key Vault:

    • Откройте Azure Portal и создайте новый экземпляр Azure Key Vault для хранения ваших секретов (например, паролей и строк подключения).
  2. Добавьте секреты в Key Vault:

    • Сохраните необходимые учетные данные (например, строки подключения для Linked Services) в Key Vault как секреты. Убедитесь, что вы присвоили соответствующие имена секретам, чтобы их было легко идентифицировать.

Шаг 2: Подготовка ARM шаблона

  1. Создайте ARM шаблон:
    • Разработайте ARM шаблон для вашего Azure Data Factory, который включает конфигурацию Linked Services. Не забудьте использовать параметры для указания секретов из Key Vault.

Пример структуры ARM шаблона:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.DataFactory/factories/linkedServices",
      "apiVersion": "2018-06-01",
      "name": "[concat(parameters('dataFactoryName'), '/', parameters('linkedServiceName'))]",
      "properties": {
        "type": "AzureBlob",
        "typeProperties": {
          "connectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKey(parameters('keyVaultName'), '2016-10-01').keys[0].value)]"
        },
        "connectVia": {
          "referenceName": "IntegrationRuntime",
          "type": "IntegrationRuntimeReference"
        }
      }
    }
  ],
  "parameters": {
    "dataFactoryName": {
      "type": "string"
    },
    "linkedServiceName": {
      "type": "string"
    },
    "keyVaultName": {
      "type": "string"
    },
    "storageAccountName": {
      "type": "string"
    }
  }
}

Шаг 3: Настройка Azure DevOps

  1. Создайте проект в Azure DevOps и добавьте репозиторий, в который будете помещать ваш ARM шаблон.

  2. Настройка CI/CD пайплайна:

    • Создайте два отдельных пайплайна: один для разработки и один для продакшена.
    • Для пайплайна разработки используйте шаги для развертывания ARM шаблона с параметрами, указывающими на разработку, и обеспечьте доступ к соответствующим секретам в Key Vault.

Шаг 4: Использование переменных для межсредовых настроек

  1. Настройка переменных в Azure DevOps:

    • Определите переменные для хранения значений секретов, включая URL-адреса и другие параметры. В каждой среде (разработка, продакшен) можно использовать разные значения.
  2. Перекрытие секретов при развертывании:

    • Используйте Azure DevOps для передачи необходимых параметров в ARM шаблон. Например, для продакшена можно использовать другие переменные для доступа к различным секретам в Key Vault.

Пример использования переменных в Azure DevOps:

parameters:
- name: storageAccountName
  type: string
  default: $(StorageAccountName)

resources:
  repositories:
  - repository: templates
    type: git
    name: your-git-repo

Шаг 5: Запуск пайплайнов

После настройки пайплайнов можно запускать их в последовательности:

  1. Пайплайн для разработки: будет развертывать обновления и управлять секретами в Key Vault разработки.

  2. Пайплайн для продакшена: будет использовать уже настроенные значения секретов в Azure Key Vault для продакшен среды.

Итог

Эта схема позволяет вам безопасно и надежно управлять продвижением учетных данных в Azure Data Factory, используя Azure DevOps и Azure Key Vault. Все учетные данные хранятся безопасно в Key Vault, и в ваших пайплайнах не происходит хардкодинга секретов, что обеспечивает безопасность и гибкость при развертывании.

Оцените материал
Добавить комментарий

Капча загружается...