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.
En este artículo
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.
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.
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”.
En el listado de roles, seleccionaremos “Data Factory Contributor”, luego clic en “Next”
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”
Esto nos llevará al resumen de la acción que se ejecutará:
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í.
Publicamos y ejecutamos el pipeline a través de un trigger now.
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.
En las ejecuciones en el ADF remoto (factory-90), vemos que se ha logrado una ejecución exitosa.
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: