Iniciar y pausar Azure Analysis Service desde Azure Data Factory

Si trabajas como ingeniero de datos sobre Azure, seguramente has tenido la necesidad de iniciar y pausar servicios como Azure Analysis Services (AAS) antes o después de procesar una tabla o partición en un modelo de datos de manera automática. En este artículo te mostraré la forma de lograrlo, pero si ya lo lograste, quizá te mostraré una manera distinta de hacerlo.

Sobre Microsoft Azure API Management

Los servicios de Azure por lo general cuentan con medios a través de los cuales es posible interactuar programaticamente, por ejemplo, en el caso de Azure Analysis Services se cuenta con opciones como obtener el estado del servicio, crear, eliminar, y de los que hablaremos en este artículo: pausar y reanudar, entre otras tantas opciones que podrás encontrar al dar clic en este link.

Obtener el estado del servicio

Para lo obtención del estado actual del servicio, debemos enviar una petición GET sobre la API de administración de Azure.

En la petición debemos especificar:

  • ID de la suscripción sobre la cual corre el servicio
  • Grupo de recursos donde se tiene el servicio
  • Nombre del servidor, o lo que es igual, nombre de la instancia de AAS

Al enviar la petición, obtendremos detalles del servicio que podremos ver a continuación:

Lo que podemos resaltar en esta respuesta sería el tag ‘state’, que nos indica el estado actual del servicio.

Reanudar el servicio

Otro de los request que haremos sobre la API es la reanudación, la cual se logra con una petición muy similar a la anterior, solo se debe adicionar la palabra ‘resume’, y cambiar la petición de GET a POST. Puedes tomar la siguiente línea guía para completar la solicitud.

Pausar el servicio

Similar a la anterior, pausar el servicio es una petición POST pero esta vez con la palabra ‘suspend’; justo como se muestra al final de la siguiente línea:

Asignación de permisos sobre AAS

Para que estas peticiones sean exitosas, es necesario que sean enviadas con un token de autorización o bajo un usuario con permisos de contribución sobre la instancia de Azure Analysis Services. Teniendo en cuenta ello, el siguiente paso será dar privilegios de contribuidor a Azure Data Factory sobre AAS utilizando AAD.

Estando en el portal de Azure, dirijete al servicio de Azure Analysis Services. En él, da clic sobre ‘Access control (IAM)’, luego en ‘Add’ y ‘Add role assignment’.

Esto nos abrirá un menú lateral en el que debemos seleccionar el rol del contribuidor y el usuario (nombre del servicio de ADF).

Con ello, damos acceso a ADF sobre AAS, con lo que podremos pasar a desarrollar nuestro pipeline.

Iniciar y pausar Azure Analysis Service desde ADF pipeline

Inicialmente recomiendo parametrizar todo aquel dato que podrá variar entre peticiones, por ello, he parametrizado el nombre del grupo de recursos, el nombre del servidor, el ID de la suscripción, la versión del API, y finalmente la acción o tarea que se realizara (suspender o iniciar el servicio).

Requeriremos de una actividad Web que enviará la petición, la cual debemos configurar como se muestra en la captura que continúa.

La construcción de la URL será así:

Finalmente tendremos un pipeline dinámico que podrá pausar o reanudar el servicio de cualquier instancia de Azure Analysis Service.

Pruebas

El envío de peticiones de reanudación y pausa se ejecuta sin mayor esfuerzo. Lo que sí podemos notar es una variación en los tiempos de ejecución entre ambos tipos de peticiones, pues la reanudación del servicio ha tardado hasta 2 minutos con 30 segundos apróximadamente; mientras que la pausa se lográ en menos de medio minuto.

En las pruebas también se observa que la petición HTTP sobre la API se ejecuta de manera sincronica, por lo que no es necesario generar tareas de validación de cierre de la instrucción. La finalización exitosa nos asegura no solo el correcto envío de la petición, también nos asegura la correcta ejecución de la instrucción sobre el servicio. Por otro lado, la finalización fallida es facilmente rastreable desde el estado de la actividad, y puede deberse a que la instrucción no fue recibida, que el servicio no respondió correctamente, o simplemente que el servicio ya se encuentra en el estado deseado.

Conclusiones

El proceso automatizado de reanudación y suspención del servicio de Azure Analysis Services es algo que se puede lograr facilmente con el uso de las herramientas que tenemos disponibles a través de Azure Data Factory; lo cual nos permitirá controlar la disponibilidad del servicio, y con ello los costos del mismo.

integrar este tipo de controles desde ADF antes de enviar una petición de procesamiento de datos es ideal si lo combinamos con la obtención del estado actual del servicio, pues nos ayudará a controlar los fallos de procesamiento por la no disponibilidad del servicio de AAS en el momento en que se envió la instrucción.

la comunicación entre servicios de Azure es algo muy bien logrado, en algunas ocasiones requerirá que mayor esfuerzo que en otras, sin embargo, en cualquier caso la documentación oficial del servicio será un muy buen punto de referencia.

En los último días escribí otro artículo relacionado al llamado de Azure Data Factory y Azure Synapse, si te interesa, a continuación te dejo el link directo.

You May Also Like