Configurar el Centro de supervisión de Fabric
El centro de supervisión del Kit de desarrollo de cargas de trabajo de Microsoft Fabric es el centro de supervisión centralizado. El centro de supervisión está diseñado para que los usuarios de Fabric realicen un seguimiento de los trabajos en segundo plano de elementos. Para obtener más información, consulte Usar el centro de supervisión.
Back-end
En esta sección se describe cómo configurar una implementación de back-end para el centro de supervisión.
Definición de la propiedad JobScheduler
en el manifiesto de elemento
Para habilitar la compatibilidad con trabajos, el elemento debe especificar los tipos de trabajos que admite. Agregue la JobScheduler
propiedad al archivo de manifiesto de elemento. La propiedad JobScheduler
habilita los trabajos administrados por Fabric para los elementos.
En la tabla siguiente se proporciona información general sobre las propiedades de definición JobScheduler
admitidas:
Propiedad | Descripción | Valores posibles |
---|---|---|
OnDemandJobDeduplicateOptions |
Establece la opción de desduplicación para trabajos de elementos a petición. | - None : no desduplicar el trabajo. - PerArtifact : asegúrese de que solo haya una ejecución de trabajo activa para el mismo artículo y tipo de trabajo. - PerUser : asegúrese de que solo hay una ejecución de trabajo activa para el mismo usuario y elemento. |
ScheduledJobDeduplicateOptions |
Establece la opción de desduplicación para trabajos de elementos a petición. | - None : no desduplicar el trabajo. - PerArtifact : asegúrese de que solo haya una ejecución de trabajo activa para el mismo artículo y tipo de trabajo. - PerUser : asegúrese de que solo hay una ejecución de trabajo activa para el mismo usuario y elemento. |
ItemJobTypes |
Lista de tipos de trabajo con las propiedades especificadas. | - Name : el nombre del tipo de trabajo, que es totalmente personalizable por el proveedor de software independiente (ISV). |
Implementar API de carga de trabajo
Para integrarse con trabajos, una carga de trabajo debe implementar las API de trabajos tal como se define en la especificación Swagger.
Tres API de Fabric están relacionadas con los trabajos:
Iniciar la instancia de trabajo
Punto de conexión: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}
Se llama a esta API para iniciar la ejecución de un trabajo.
- Respuesta: La API debe devolver un estado
202 Accepted
que indique que el sistema programó correctamente el trabajo.
Obtener estado de la instancia del trabajo
Punto de conexión: GET /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}
Fabric usa un mecanismo de sondeo para realizar un seguimiento del estado de la instancia de trabajo. Se llama a esta API cada minuto mientras la instancia de trabajo está en curso para comprobar su estado. El sondeo se detiene cuando se completa el trabajo, ya sea con éxito o debido a una falla.
Respuesta: la API debe devolver un estado
200 OK
junto con el estado de instancia de trabajo actual. La respuesta debe incluir el estado del trabajo, las horas de inicio y finalización y los detalles del error si el trabajo falló.Estados de trabajo admitidos:
NotStarted
InProgress
Completed
Failed
Cancelled
Importante: Aunque se produzca un error en el trabajo, esta API debe devolver un estado
200 OK
y un estadoFailed
de trabajo.
Cancelar una instancia de trabajo
Punto de conexión: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}/cancel
Llame a esta API para cancelar una instancia de trabajo en curso.
- Respuesta: la API debe devolver un estado
200 OK
junto con el estado de instancia de trabajo actual. La respuesta debe incluir el estado del trabajo, las horas de inicio y finalización y los detalles del error si el trabajo falló.
Más información
Recuento de devoluciones de trabajos:
La plataforma Fabric marca un trabajo como "devolución" si no comienza dentro de 2 horas.
Implementación de ejemplo
Para obtener un ejemplo de implementación de estas API, consulte JobsControllerImpl.cs en el repositorio de ejemplos.
Front-end
En esta sección se describe cómo configurar una implementación de front-end para el centro de supervisión.
Ejecución de un trabajo en la interfaz de usuario de Fabric
Después de integrar trabajos en los elementos del back-end, los usuarios pueden empezar a ejecutar trabajos.
Los usuarios tienen dos opciones para ejecutar trabajos en Fabric:
- Un trabajo programado desatendido. El usuario define esta opción para que se ejecute a intervalos regulares a través de una experiencia de programador de Fabric compartida.
- A petición mediante la interfaz de usuario de carga de trabajo con y el SDK de cliente de extensión.
Experiencia del programador de Fabric desde la interfaz de usuario
Opciones de punto de entrada:
Use la programación del menú contextual.
Use
workloadClient.itemSettings.open
, donde el identificador de configuración seleccionado esSchedule
.
Diseño
- La última hora de actualización correcta y la hora de actualización siguiente.
- El botón Actualizar.
- La configuración de la programación de elementos.
Incorporación
Paso 1: Agregar un elemento de menú contextual de programación
Para mostrar el botón Programar en el menú contextual del elemento, agregue una nueva entrada a la propiedad contextMenuItems
en el manifiesto de front-end del elemento:
{
"name": "schedule"
}
Paso 2: agregar la configuración de programación de elementos
Agregue una nueva entrada schedule
a la propiedad de configuración del elemento en el manifiesto de front-end:
"schedule": {
"itemJobType": "ScheduledJob",
"refreshType": "Refresh"
}
itemJobType
: tipo de trabajo de elemento definido en el archivo XML de definición de trabajo de elemento.refreshType
: especifica la presentación del botón Actualizar. Elija entre tres opciones: useRefresh
yRun
para habilitar el botón Actualizar y el nombre para mostrar, o bien establezcaNone
para deshabilitar el botón Actualizar.
Trabajos de las API de JavaScript
Además de los trabajos programados desatendidos, una carga de trabajo puede ejecutar un trabajo a petición o incluso iniciar un trabajo programado a petición. Proporcionamos un conjunto de API como parte de nuestro cliente de extensión:
API de trabajos programados:
getItemScheduledJobs(objectId: string): Promise<ItemSchedule>
createItemScheduledJobs(createItemScheduledJobs: CreateItemScheduleParams): Promise<ItemSchedule>
updateItemScheduledJobs(updateItemScheduleParams: UpdateItemScheduleParams): Promise<ItemSchedule>
API de instancia de trabajo específicas:
runItemJob(jobParams: RunItemJobParams): Promise<ItemJobInstance>
cancelItemJob(jobParams: CancelItemJobParams): Promise<CancelItemJobResult>
getItemJobHistory(getHistoryParams: GetItemJobHistoryParams): Promise<ItemJobHistory>
Nota:
getItemJobHistory
devuelve el trabajo con el estado que se almacena actualmente en Fabric. Dado que Fabric se basa actualmente únicamente en el sondeo, tenga en cuenta que el estado podría no ser el más actualizado. Si necesita que la interfaz de usuario refleje el estado más preciso lo antes posible, se recomienda obtener el estado directamente desde el back-end.
Integrar con el centro de supervisión
Cuando los datos están listos, los trabajos de elemento se muestran automáticamente en el centro de supervisión. El siguiente paso es agregar el tipo de elemento al panel de filtro y configurar e implementar acciones disponibles que un usuario puede realizar en los trabajos.
Habilite el elemento en el panel de filtro del centro de supervisión
Para agregar el elemento al panel de filtro, defina una nueva propiedad en el manifiesto de front-end del elemento y establezca supportedInMonitoringHub
en true
.
Integración con acciones rápidas del trabajo
Un usuario puede ejecutar un conjunto de operaciones en un trabajo, como cancelar, reintentar y obtener detalles.
El equipo de carga de trabajo decide cuál quiere habilitar estableciendo la propiedad itemJobConfig
en el manifiesto de front-end del elemento. Si no se establece, el icono no está visible.
Por ejemplo, la configuración que agregamos al elemento de ejemplo que admite todas las acciones de trabajo aparece más adelante en esta sección.
Cuando un usuario selecciona el icono Cancelar del trabajo de elemento de ejemplo, llamamos a la acción item.job.cancel
proporcionada. La carga de trabajo implementa el contexto relacionado con el trabajo para la extensión Fabric.WorkloadSample
para cancelar realmente el trabajo.
La plataforma Fabric también espera una respuesta de esta acción para notificar al usuario los resultados.
"itemJobActionConfig": {
"registeredActions": {
"detail": {
"extensionName": "Fabric.WorkloadSample",
"action": "item.job.detail"
},
"cancel": {
"extensionName": "Fabric.WorkloadSample",
"action": "item.job.cancel"
},
"retry": {
"extensionName": "Fabric.WorkloadSample",
"action": "item.job.retry"
}
}
}
Página de detalles del trabajo
Cuando el equipo de carga de trabajo registra la acción para obtener información detallada, Fabric espera que la acción de carga de trabajo devuelva los datos en un formato específico para que Fabric pueda mostrar esa información en el panel lateral.
Actualmente, se admiten pares clave-valor en texto sin formato o hipervínculo.
- Para obtener un ejemplo de control de las acciones de trabajo, consulte index.worker.ts en el repositorio de ejemplo. En el archivo, busque acciones que comiencen por
item.job
.
Ejecuciones recientes
Además de mostrar el estado del trabajo en el centro de supervisión, Fabric ofrece una experiencia de usuario compartida para mostrar las ejecuciones recientes de un elemento específico.
Puntos de entrada:
Menú contextual>Ejecuciones recientes
Use
workloadClient.itemRecentRuns.open
.
Incorporación
Paso 1: Agregar recentRuns
elemento de menú contextual
Para mostrar el botón Ejecuciones recientes en el menú del elemento, agregue una nueva entrada a la propiedad contextMenuItems
en el manifiesto de front-end del elemento.
Ejemplo:
{
"name": "recentruns"
}
Paso 2: Agregar configuración de elementos recentRun
Agregue una nueva entrada recentRun
a la propiedad de configuración del elemento en el manifiesto de front-end.
Ejemplo:
"recentRun": {
"useRecentRunsComponent": true,
}
Integración de trabajos en la cinta de elementos de ejemplo
Como parte del ejemplo de carga de trabajo de la interfaz de usuario, agregamos una sección dedicada a los trabajos en la cinta de opciones de elementos.
Para ver un ejemplo de cómo se implementó esta cinta, consulte ItemTabToolbar.tsx en el repositorio de ejemplo.