Ejecutando pipeline de ADF desde otro Azure Data Factory

Es común que entre más grande la organización, mayor probabilidad hay de tener más de una instancia de Azure Data Factory. Y así mismo, procesos con dependencias entre dos o más instancias de ADF. Por ello, hoy veremos como ejecutar pipelines remotamente en data factory.

Diseño propuesto

Situación actual

Se cuenta con dos instancias de Azure Data Factory sobre el mismo tenant de Azure. Uno de los ADF se llama factory-89, el otro se llama factory-90.

Factory-89

Esta instancia tiene un único pipeline llamado “callPipeline”, el cual contiene una única actividad aún sin configurar, la cual utilizaremos para enviar la instrucción de ejecución hacia la otra instancia.

Actividad WEB en Azure Data Factory

Factory-90

Esta otra instancia tiene igualmente un único pipeline, el cual contiene una actividad de espera por 5 segundos. Esta será la actividad que estaremos ordenando ejecutar desde el pipeline del factory-89.

Actividad de espera en Azure Data Factory

Cesión de permisos

Inicialmente, daremos permisos al Azure Data Factory llamado factory-89 sobre factory-90. Para ello, ubicados en el factory-90 damos clic sobre “Access control (IAM)”, luego clic sobre “Add role assignment”.

Access control IAM Azure Data Factory

En el listado de roles, seleccionaremos “Data Factory Contributor”, luego clic en “Next”

Roles en Azure Data Factory

En la asignación de roles, clic sobre “+ Select members”, y en el buscador escribiremos el nombre del data factory al que le permitiremos acceso. En este caso, estando en el factory-90 buscaremos el factory-89 y lo seleccionaremos. Luego clic en “Select”, y “Next”

Asignación de roles en Azure Data Factory

Esto nos llevará al resumen de la acción que se ejecutará:

Asignación de roles en Azure Data Factory

Clic sobre “Review + assign”

Configurando el llamado hacia otra instancia de Azure Data Factory

En el pipeline de la instancia factory-89, configuraremos la actividad WEB de la siguiente manera:

  • URL: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelines/{pipelineName}/createRun?api-version=2018-06-01
  • Method: POST
  • Body: {}
  • Authentication: Managed Identity
  • Resource: https://management.azure.com

Nótese que la URL tiene valores entre llaves {}, estos son valores que debemos reemplazar por los correspondientes a la instancia remota que queremos conectar. Para conocer más sobre esta API, da clic aquí.

Configuración de llamado a API desde Azure Data Factory

Publicamos y ejecutamos el pipeline a través de un trigger now.

Trigger now en Azure Data Factory

Ahora, al revisar la ejecución de pipelines en las opciones de monitoreo, se puede ver la ejecución manual finalizada con éxito dentro del factory-89.

Monitoreo en Azure Data Factory

En las ejecuciones en el ADF remoto (factory-90), vemos que se ha logrado una ejecución exitosa.

Monitoreo de ejecuciones en ADF

Conclusiones

Considero que lo más importante de este artículo no es como ejecutar un pipeline de ADF desde una instancia remota, lo más importante es como a través del uso de la API de Azure Data Factory podemos enviar instrucciones de ejecución de una manera simple, desde cualquier lenguaje como Python, o sistemas como Postman; incluso integrar sistemas organizacionales para el envío de instrucciones hacia ADF.

En este otro artículo podrás ver como hacer la ejecución desde Azure Logic App:

You May Also Like