Administrar Azure Analysis Services (AAS) puede ser una tarea que consume mucho tiempo, especialmente cuando se trata de terminar trabajos de actualización que se ejecutan durante mucho tiempo. Desafortunadamente, las herramientas predeterminadas de Microsoft como Azure Portal o SQL Server Management Studio no proporcionan una forma de terminar los trabajos de actualización que se están ejecutando actualmente. En este artículo, exploraremos cómo construir una Logic App para automatizar la terminación de las actualizaciones de modelos de AAS.
Descripción general de la solución
La solución implica construir una Logic App con dos módulos: el módulo principal y el módulo secundario. El módulo principal es responsable de realizar la terminación real de los trabajos de actualización, mientras que el módulo secundario llama al módulo principal para diferentes modelos.
Prerrequisitos
Antes de comenzar, asegúrese de tener la siguiente información:
- Nombre del servidor AAS: puede encontrar esta información en la página de descripción general de su servidor AAS en Azure Portal.
- Id. de cliente y secreto: deberá crear una nueva aplicación y agregar un secreto para ella desde la página de Registro de aplicaciones en Azure Portal.
- ID de inquilino: puede encontrar esta información en la pestaña “Propiedades” de su Directorio activo de Azure o en la página de Registro de aplicaciones para la aplicación que creó en Azure Portal.
Construcción del módulo principal
Comencemos creando una nueva Logic App y nómbrela “Cancelar actualización de AAS”. Agregue un desencadenador de solicitud HTTP como el primer componente e incluya el esquema JSON necesario en su cuerpo para pasar el parámetro ModelName desde la aplicación externa.
{
"properties": {
"ModelName": {
"type": "string"
}
},
"type": "object"
}Para extraer el valor del parámetro ModelName, agregue una acción de Inicializar variable y configure para asignar el atributo ModelName de la solicitud HTTP a la variable ModelName.
A continuación, agregue una solicitud HTTP con el método GET para recuperar el historial de actualizaciones para el modelo dado. Proporcione la URI en el formato https://yourserverregion/servers/AASservername/models/@{variables('ModelName')}/refreshes. Configure los detalles de autenticación necesarios utilizando la opción de OAuth de Active Directory.
Después de recuperar el historial de actualizaciones, agregue una acción de Filtrar matriz para filtrar solo los detalles de actualización en ejecución actualmente para el modelo dado. Use la expresión @equals(item()?['status'], 'inProgress') para filtrar la matriz.
A continuación, agregue una acción de Operaciones de datos llamada “Analizar JSON” y asigne el atributo Body de la matriz filtrada a su campo de contenido. Ingrese el esquema JSON necesario para analizar la respuesta JSON.
Ahora, agregue una acción de Para cada para iterar a través de cada trabajo de actualización y agregue una acción de solicitud HTTP con el método DELETE para terminar cada trabajo. Ingrese la URI y los detalles de autenticación necesarios.
Finalmente, agregue una acción de respuesta HTTP para completar el flujo de datos.
Construcción del módulo secundario
Cree una nueva Logic App para el módulo secundario y agregue un desencadenador de solicitud HTTP recibida. Agregue una acción de Inicializar variable para asignar los nombres de los modelos que desea terminar a la variable ModelNames.
A continuación, agregue una acción de Para cada y asigne la variable ModelNames a su condición de bucle. Dentro del bucle, agregue una acción de Azure Logic Apps y seleccione la aplicación “Cancelar actualización de AAS”. Asigne el atributo Elemento actual para la acción de Para cada.
¡Eso es todo! Ahora ha automatizado con éxito la terminación de las actualizaciones de modelos de AAS utilizando Logic App.
Al automatizar esta tarea, puede ahorrar tiempo y esfuerzo en la administración de sus Azure Analysis Services. Logic App proporciona una solución flexible y escalable para automatizar varias tareas de administración, lo que le permite centrarse en aspectos más importantes de su entorno de SQL Server.