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


REST API для среды выполнения интеграции Диспетчера оркестрации рабочих процессов

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

Совет

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

Примечание.

Диспетчер оркестрации рабочих процессов управляется Apache Airflow.

В этой статье описаны интерфейсы REST API для среды выполнения интеграции диспетчера оркестрации рабочих процессов Фабрика данных Azure.

Примечание.

Диспетчер оркестрации рабочих процессов для Фабрика данных Azure использует приложение Apache Airflow с открытым исходным кодом. Документацию и дополнительные руководства по Airflow можно найти на веб-страницах Apache Airflowили веб-страницах сообщества.

Создание новой среды

  • Метод: PUT

  • URL-адрес: https://management.azure.com/subscriptions/<subscriptionid>/resourcegroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<datafactoryName>/integrationruntimes/<airflowEnvName>?api-version=2018-06-01

  • Параметры URI:

    Имя. In Обязательное поле Type Описание
    идентификатор подписки; path Истина строка Идентификатор подписки
    Имя группы ресурсов path Истина строка Имя группы ресурсов (шаблон Regex: ^[-\w\._\(\)]+$)
    dataFactoryName path Истина строка Имя экземпляра Фабрика данных Azure (шаблон Regex:^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
    airflowEnvName path Истина строка Имя среды Диспетчера оркестрации рабочих процессов
    Версия API query Истина строка Версия API
  • Текст запроса (конфигурация Airflow):

    Имя. Тип Description
    name строка Имя среды Airflow
    свойства propertyType Свойства конфигурации среды
  • Тип свойств:

    Имя. Тип Описание
    Тип строка Тип ресурса (Airflow в этом сценарии)
    typeProperties typeProperty Воздушный поток
  • Свойство Type:

    Имя. Тип Описание
    computeProperties computeProperty Настройка типа вычислений, используемого для среды
    airflowProperties airflowProperty Настройка свойств Airflow для среды
  • Свойство вычислений:

    Имя. Тип Описание
    расположение строка Расположение среды выполнения интеграции Airflow по умолчанию используется в регионе фабрики данных. Чтобы создать среду выполнения интеграции в другом регионе, создайте фабрику данных в требуемом регионе.
    computeSize строка Размер вычислительного узла, на который будет выполняться среда Airflow. Примерами являются крупные или маленькие. Три узла изначально выделены.
    extraNodes integer Каждый дополнительный узел добавляет еще три рабочих места.
  • Свойство Airflow:

    Имя. Тип Описание
    airflowVersion строка Текущая версия Airflow. Например, 2.4.3.
    airflowRequirements Строка массива<> Библиотеки Python, которые вы хотите использовать. Например, ["flask-bcrypy=0.7.1"]. Может быть списком с разделителями-запятыми.
    airflowEnvironmentVariables Объект (пара "Ключ-значение") Переменные среды, которые вы хотите использовать. Например, { "SAMPLE_ENV_NAME": "test" }.
    gitSyncProperties gitSyncProperty Свойства конфигурации Git.
    enableAADIntegration boolean Позволяет идентификатору Microsoft Entra войти в Airflow.
    userName строка или null Имя пользователя для базовой проверки подлинности.
    password строка или null Пароль для базовой проверки подлинности.
  • Свойство синхронизации Git:

    Имя. Тип Описание
    gitServiceType строка Служба Git, в которой находится нужный репозиторий. Значения: GitHub, ADO, GitLab или Bitbucket.
    gitCredentialType строка Тип учетных данных Git. Значения: PAT (для личного маркера доступа) и None.
    репозиторий строка Ссылка на репозиторий.
    ветвь строка Ветвь для использования в репозитории.
    username строка Имя пользователя GitHub.
    Подтверждение компетенции строка Значение PAT.
  • Ответы:

    Имя. Код состояния Тип Описание
    Принято 200 Фабрика ОК
    Не авторизовано 401 Ошибка облака Массив с дополнительными сведениями об ошибке

Импорт групп daGs

  • Метод: POST

  • URL-адрес: https://management.azure.com/subscriptions/<subscriptionid>/resourcegroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/airflow/sync?api-version=2018-06-01

  • Текст запроса:

    Имя. Тип Описание
    IntegrationRuntimeName строка Имя среды Airflow.
    LinkedServiceName строка Хранилище BLOB-объектов Azure имя учетной записи, в которой находятся группы доступности для импорта.
    StorageFolderPath строка Путь к папке в Хранилище BLOB-объектов Azure с помощью daGs.
    Перезаписать boolean Перезаписать существующие группы управления доступности (Default=True).
    CopyFolderStructure boolean Определяет, копируется ли структура папок.
    AddRequirementsFromFile boolean Добавление требований из файлов DAG
  • Ответы:

    Имя. Код состояния Тип Описание
    Принято 200 Фабрика ОК
    Не авторизовано 401 Ошибка облака Массив с дополнительными сведениями об ошибке

Примеры

Ознакомьтесь со следующими примерами.

Создание новой среды с помощью REST API

Пример запроса:

HTTP
PUT https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/abnarain-rg/providers/Microsoft.DataFactory/factories/ambika-df/integrationruntimes/sample-2?api-version=2018-06-01

Пример текста:

{
   "name": "sample-2",
   "properties": {
      "type": "Airflow",
      "typeProperties": {
         "computeProperties": {
            "location": "East US",
            "computeSize": "Large",
            "extraNodes": 0
         },
         "airflowProperties": {
            "airflowVersion": "2.4.3",
            "airflowEnvironmentVariables": {
               "AIRFLOW__TEST__TEST": "test"
            },
            "airflowRequirements": [
               "apache-airflow-providers-microsoft-azure"
            ],
            "enableAADIntegration": true,
            "userName": null,
            "password": null,
            "airflowEntityReferences": []
         }
      }
   }
}

Пример ответа:

Status code: 200 OK

Текст ответа

{
   "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/your-rg/providers/Microsoft.DataFactory/factories/your-df/integrationruntimes/sample-2",
   "name": "sample-2",
   "type": "Microsoft.DataFactory/factories/integrationruntimes",
   "properties": {
      "type": "Airflow",
      "typeProperties": {
         "computeProperties": {
            "location": "East US",
            "computeSize": "Large",
            "extraNodes": 0
         },
         "airflowProperties": {
            "airflowVersion": "2.4.3",
            "pythonVersion": "3.8",
            "airflowEnvironmentVariables": {
               "AIRFLOW__TEST__TEST": "test"
            },
            "airflowWebUrl": "https://e57f7409041692.eastus.airflow.svc.datafactory.azure.com/login/",
            "airflowRequirements": [
               "apache-airflow-providers-microsoft-azure"
            ],
            "airflowEntityReferences": [],
            "packageProviderPath": "plugins",
            "enableAADIntegration": true,
            "enableTriggers": false
         }
      },
      "state": "Initial"
   },
   "etag": "3402279e-0000-0100-0000-64ecb1cb0000"
}

Импорт групп daGs

Пример запроса:

HTTP

POST https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/your-rg/providers/Microsoft.DataFactory/factories/your-df/airflow/sync?api-version=2018-06-01

Пример текста:

{
   "IntegrationRuntimeName": "sample-2",
   "LinkedServiceName": "AzureBlobStorage1",
   "StorageFolderPath": "your-container/airflow",
   "CopyFolderStructure": true,
   "Overwrite": true,
   "AddRequirementsFromFile": true
}

Пример ответа:

Status Code: 202