Compartir a través de


API REST para el entorno de ejecución de integración de Workflow Orchestration Manager

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. ¡Obtenga más información sobre cómo iniciar una nueva evaluación gratuita!

Nota:

El Administrador de orquestación de flujo de trabajo cuenta con la tecnología de Apache Airflow.

En este artículo se documentan las API REST para el entorno de ejecución de integración de Workflow Orchestration Manager de Azure Data Factory.

Nota:

El administrador de orquestación de flujo de trabajo para Azure Data Factory se basa en la aplicación Apache Airflow de código abierto. Puede encontrar documentación y más tutoriales para Airflow en las páginas de Documentación o la Comunidad de Airflow de Apache.

Crear un nuevo entorno

  • Método: PUT

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

  • Parámetros de URI:

    Nombre En Obligatorio Tipo Descripción
    Id. de suscripción path True cadena Identificador de suscripción.
    Nombre del grupo de recursos path True cadena Nombre del grupo de recursos (patrón Regex: ^[-\w\._\(\)]+$)
    dataFactoryName path True string Nombre de la instancia de Azure Data Factory (patrón Regex: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
    airflowEnvName path True string Nombre del entorno del Administrador de orquestación de flujo de trabajo
    Versión de API Query True cadena Versión de API
  • Cuerpo de la solicitud (configuración de Airflow)::

    Nombre Escribir Descripción
    name cadena Nombre del entorno de Airflow
    properties propertyType Propiedades de configuración para el entorno
  • Tipo de propiedad:

    Nombre Escribir Descripción
    Tipo cadena Tipo de recurso (Airflow en este escenario)
    typeProperties typeProperty Flujo de aire
  • Propiedad Type:

    Nombre Escribir Descripción
    computeProperties computeProperty Configuración del tipo de proceso usado para el entorno
    airflowProperties airflowProperty Configuración de las propiedades de Airflow para el entorno
  • Propiedad Compute:

    Nombre Escribir Descripción
    ubicación string La ubicación del entorno de ejecución de integración de Airflow tiene como valor predeterminado la región de la factoría de datos. Para crear un entorno de ejecución de integración en otra región, cree una nueva factoría de datos en la región necesaria.
    computeSize cadena Tamaño del nodo de proceso en el que desea que se ejecute el entorno de Airflow. Algunos ejemplos son Grande o Pequeño. Se asignan inicialmente tres nodos.
    extraNodes integer Cada nodo adicional agrega tres trabajos más.
  • Propiedad Airflow:

    Nombre Escribir Descripción
    airflowVersion string Versión actual de Airflow. Por ejemplo, 2.4.3.
    airflowRequirements Matriz<cadena> Bibliotecas de Python que desea usar. Por ejemplo: ["flask-bcrypy=0.7.1"]. Puede ser una lista delimitada por comas.
    airflowEnvironmentVariables Objeto (par clave-valor) Variables de entorno que desea usar. Por ejemplo: { “SAMPLE_ENV_NAME”: “test” }.
    gitSyncProperties gitSyncProperty Propiedades de configuración de Git.
    enableAADIntegration boolean Permite que Microsoft Entra ID inicie sesión en Airflow.
    userName cadena o null Nombre de usuario para Autenticación básica.
    password cadena o null Contraseña para Autenticación básica.
  • Propiedad de sincronización de Git:

    Nombre Escribir Descripción
    gitServiceType string El servicio Git en el que se encuentra el repositorio deseado. Los valores son GitHub, ADO, GitLab o Bitbucket.
    gitCredentialType cadena Tipo de credencial de Git. Los valores son PAT (para el token de acceso personal) y Ninguno.
    repo string Vínculo del repositorio.
    branch string Rama que se va a usar en el repositorio.
    username string Nombre de usuario de GitHub.
    Credential: string Valor del PAT.
  • Respuestas:

    Nombre status code Tipo Descripción
    Aceptado 200 Factory OK (CORRECTO)
    No autorizado 401 Error en la nube Matriz con más detalles de error

Importación de DAG

  • Método: POST

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

  • Cuerpo de la solicitud:

    Nombre Escribir Descripción
    IntegrationRuntimeName string Nombre del entorno de Airflow.
    LinkedServiceName string Nombre de la cuenta de Azure Blob Storage donde se encuentran los DAG que se van a importar.
    StorageFolderPath string Ruta de acceso a la carpeta de Azure Blob Storage con los DAG.
    Sobrescribir boolean Sobrescriba los DAG existentes (Default=True).
    CopyFolderStructure boolean Controla si la estructura de carpetas se copia o no.
    AddRequirementsFromFile boolean Adición de requisitos de los archivos DAG
  • Respuestas:

    Nombre status code Tipo Descripción
    Aceptado 200 Factory OK (CORRECTO)
    No autorizado 401 Error en la nube Matriz con más detalles de error

Ejemplos

Consulte los siguientes ejemplos.

Creación de un nuevo entorno mediante las API REST

Solicitud de ejemplo:

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

Cuerpo de ejemplo:

{
   "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": []
         }
      }
   }
}

Respuesta de ejemplo:

Status code: 200 OK

Cuerpo de la respuesta:

{
   "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"
}

Importación de DAG

Solicitud de ejemplo:

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

Cuerpo de ejemplo:

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

Respuesta de ejemplo:

Status Code: 202