ArcGIS Notebook Server le permite implementar varios métodos de automatización de flujos de trabajo, incluida la automatización a través de notebooks programados, webhooks y sus propios scripts personalizados con la API administrativa Ejecutar notebook.
Nota:
Para automatizar un notebook con tareas programadas, webhooks o la API Ejecutar notebook, el notebook debe usar un tiempo de ejecución de la versión 3.0 o posterior.
Programar tareas de notebook
A partir de la versión 10.8.1, los autores de notebooks pueden programar ArcGIS Notebooks para su ejecución automática en un momento dado en el futuro, ya sea una vez o de forma recurrente. La creación de tareas para programar notebooks permite automatizar flujos de trabajo rutinarios, ejecutar procesos intensivos en datos fuera de las horas punta de uso y actualizar datasets regularmente. Por ejemplo, puede programar un notebook para hacer lo siguiente:
- Importar datos de una fuente en línea actualizada mensualmente, limpiar automáticamente los datos y aplicar las transformaciones necesarias y mover los datos a su espacio de trabajo.
- Ejecutar un flujo de trabajo de análisis de big data que requiera una gran potencia de procesamiento durante la noche, cuando los recursos de su equipo no se utilicen.
- Administrar los usuarios que hayan creado cuentas en su portal durante la semana anterior y enviarse la lista de los mismos por correo electrónico.
Puede crear una o varias tareas para un notebook. De forma predeterminada, el autor o administrador del notebook puede crear un máximo de 20 tareas. Si se cambia la propiedad del notebook, las tareas asociadas a ese notebook se desactivarán y se asignarán al nuevo propietario.
Las tareas programadas le permiten parametrizar notebooks. Cuando un notebook está parametrizado, le permite escribir código genérico que se puede adaptar a distintas entradas sin su interacción. Los parámetros elegidos se insertan en el notebook cuando se ejecuta una tarea y se pueden guardar opcionalmente en el notebook. Por ejemplo, un notebook parametrizado se puede usar para generar informes de contaminación del aire a nivel de región de forma recurrente. El notebook puede tener varias tareas programadas, una para cada región que se estudiará y, para cada tarea, se pueden introducir entradas parametrizadas en el notebook, como el nombre de la ciudad y el tipo de contaminación.
Nota:
La propiedad del sistema maxExecuteNotebookContainersPerNode limita el número de ejecuciones simultáneas de las tareas de notebook en Notebook Server.
Puede configurar la tarea para guardar el estado del notebook en el elemento de notebook original una vez completada.
Se guardará una vista HTML estática del notebook para cada tarea programada que se ejecute. De forma predeterminada, solo se guardarán los resultados de las últimas 30 ejecuciones.
Mediante la página Tareas de ArcGIS Notebook Server Manager, los administradores pueden ver detalles, editar, poner en pausa, reanudar o eliminar cada tarea del notebook activa en el sitio. Los administradores y autores de notebooks con el privilegio programado del notebook pueden ver detalles, editar, pausar y reanudar, o eliminar una tarea del notebook en la página de detalles del notebook o en el panel de tareas del editor del notebook.
Para evitar ejecuciones repetidas de un notebook, una tarea programada se deshabilitará después de cinco fallos consecutivos. El propietario de la tarea debe asegurarse de que el notebook se puede ejecutar correctamente sin que intervenga el usuario antes de reactivar la tarea.
Si aún se está ejecutando una ejecución anterior de una tarea, se omitirá la ejecución de una nueva tarea programada. Por ejemplo, si una tarea está programada para ejecutarse cada 15 minutos, pero una instancia de esa tarea se ejecuta durante 20 minutos, se omitirá la siguiente ejecución programada. Si esto ocurre regularmente, el propietario de la tarea debe ajustar el intervalo de tiempo programado para que no se ejecute ninguna superposición entre ellas.
Para obtener más información sobre las tareas programadas de notebook, consulte el tema de ayuda Programar una tarea de notebook.
Al utilizar la ventana Administrar tareas desde la página de inicio de ArcGIS Notebook Server o la página Tareas de ArcGIS Notebook Server Manager, los administradores pueden ver detalles, editar, pausar, reanudar y eliminar tareas de notebook activas en el sitio. Los administradores y autores con el privilegio para programar notebooks pueden ver detalles, editar, pausar, reanudar y eliminar una tarea del notebook en la página de detalles del notebook o en el panel de tareas del editor del notebook.
Límites de tareas programadas
Existen ciertos límites a nivel de usuario, organización y sitio de ArcGIS Notebook Server (equipo) relacionados con las tareas de notebook programadas.
Ejecuciones de notebook simultáneas automatizadas máximas (maxExecuteNotebookContainersPerNode)
Cuando un notebook se ejecuta a través de una tarea programada, webhook o la API Ejecutar notebook, ArcGIS Notebook Server automáticamente abre un nuevo contenedor y ejecuta el notebook sin ninguna interacción de usuario. De forma predeterminada, ArcGIS Notebook Server está configurado para ejecutar un máximo de 10 notebooks concurrentes por cada equipo de Notebook Server. Teniendo en cuenta los recursos (CPU y RAM) disponibles en cada equipo del sitio de Notebook Server, el administrador puede ajustar este límite modificando la propiedad del sistema maxExecuteNotebookContainersPerNode en Notebook Server. Cualquier solicitud de notebook automatizada enviada después de exceder este límite se agregará a una cola y se ejecutará una vez que la cantidad de ejecuciones de tareas automatizadas caiga por debajo de este límite. Las tareas en cola fallarán si el tiempo de espera excede el tiempo de expiración.
Nota:
Esto no limita la cantidad de notebooks que se ejecutan de forma interactiva desde el editor de notebooks.
Puede cambiar el límite maxExecuteNotebookContainersPerNode siguiendo los pasos siguientes.
Nota:
Aumentar el límite puede resultar en el uso de recursos adicionales en Notebook Server.
- Inicie sesión en su portal de ArcGIS Enterprise como administrador.
- Abra ArcGIS Notebook Server Manager.
- Haga clic en Ajustes > Sitio
- Cambie el valor de la propiedad maxExecuteNotebookContainersPerNode.
- Haga clic en Guardar.
- Revise la advertencia sobre el reinicio de Notebook Server y haga clic en Guardar y reiniciar para guardar los cambios.
Máximo de tareas de notebook activas programadas por usuario
Cada autor de notebook con el privilegio para programar notebooks puede crear hasta un máximo de 20 tareas de notebook activas. Una vez alcanzado este límite, el usuario no podrá crear nuevas tareas programadas. Se puede crear una nueva tarea una vez que una tarea existente cambia de Activa a Completada, Fallida o Inactiva. Este límite se puede cambiar actualizando la propiedad ExecuteNotebooksUserLimit mediante la operación Actualizar límites del sistema en la API de ArcGIS Portal Administrator.
Máximo de tareas de notebook activas programadas por organización
El máximo de tareas de notebook activas programadas para una organización está limitado a 200. Este límite representa el número total de tareas activas que pueden ser propiedad de todos los usuarios de una organización de portal. Una vez alcanzado este límite, los usuarios no podrá crear nuevas tareas de notebook programadas. Este límite se puede cambiar actualizando la propiedad ExecuteNotebooksOrgLimit mediante la operación Actualizar límites del sistema en la API de ArcGIS Portal Administrator.
Número de resultados informados para una tarea programada
Los resultados de una tarea se informan y mantienen durante 30 ejecuciones. Cualquier tarea ejecutada antes de las 30 ejecuciones más recientes de una tarea se elimina de forma permanente. Este límite se puede cambiar actualizando la propiedad TaskRunHistoryCount mediante la operación Actualizar límites del sistema en la API de ArcGIS Portal Administrator.
Fallo automático de una tarea
Cualquier tarea que falle 5 veces consecutivas pasará automáticamente a un estado fallido y ya no se ejecutará. Para garantizar que las tareas sigan ejecutándose, el propietario de la tarea debe identificar y rectificar el error y cambiar la tarea al estado Activo. Este límite se puede cambiar actualizando la propiedad FailedRunsDisableTask mediante la operación Actualizar límites del sistema en la API de ArcGIS Portal Administrator.
Automatizar un notebook con webhooks
Un webhook es un mecanismo que permite que una aplicación proporcione información basada en eventos a otras aplicaciones. Como administrador de ArcGIS Enterprise Portal o como usuario con el privilegio de webhooks de organización, puede crear, administrar y configurar webhooks. Puede configurar los webhooks para que ejecuten automáticamente un notebook cuando sucedan eventos asociados con los elementos, grupos o usuarios del portal. Su ArcGIS Notebook Server actúa como el receptor de la carga del webhook. Una vez desencadenado un webhook, se realiza una solicitud HTTP a Notebook Server para ejecutar un notebook elegido sin ninguna interacción del usuario.
Nota:
La propiedad del sistema maxExecuteNotebookContainersPerNode limita el número de ejecuciones concurrentes de notebooks a través de webhooks en Notebook Server.
Crear un webhook
Los webhooks se pueden administrar desde la página Configuración de la organización de su portal. Siga estos pasos para crear un webhook:
- Inicie sesión como administrador predeterminado o con un rol personalizado con el privilegio de webhooks de la organización.
- Vaya a Organización > Configuración > Webhooks.
- Haga clic en Crear webhook.
- Especifique un nombre de webhook.
Name=mynotebook_webhook
- Seleccione el tipo de evento que desencadenará el webhook.
De forma predeterminada, se consideran todos los tipos de eventos (Elementos, Usuarios, Grupos y Roles).
- Utilice Desencadenador para aceptar el valor predeterminado (/) o especifique uno o varios valores como eventos desencadenadores.
Eventos=/elementos, /elementos/<itemId>,/usuarios
Consulte Eventos desencadenadores compatibles para obtener más información.
Para ver ejemplos adicionales, consulte Eventos desencadenadores.
- Seleccione Notebook como tipo de carga.
Nota:
Si la opción Notebook no está disponible, Notebook Server no se ha configurado con su portal. Si Notebook está disponible, pero no se puede seleccionar, entonces no posee ningún notebook que esté disponible para configurar webhooks. Debe ser el propietario del elemento de notebook que se utilizará para el webhook. - Seleccione el notebook que se ejecutará cuando se desencadene el webhook.
- Si lo desea, introduzca una clave Secreto que se incluirá en la carga del webhook.
También puede optar por usar valores generados de forma aleatoria para la clave Secreto.
- Haga clic en Crear webhook para guardar la configuración del webhook y crear un webhook.
Administrar webhooks
Los webhooks se pueden administrar desde la página Configuración de la organización de su portal. Siga estos pasos para administrar los webhooks existentes:
- Inicie sesión como administrador predeterminado o con un rol personalizado con el privilegio de webhooks de la organización.
- Vaya a Organización > Configuración > Webhooks para ver una lista de webhooks creados por usted y por otros administradores de webhooks.
Puede administrar sus webhooks existentes con las siguientes operaciones.
- Desactivar webhook: cuando un webhook esté en un estado activo, haga clic en Activo. Se le pedirá que confirme el cambio de estado. Haga clic en Confirmar para desactivar el webhook. La desactivación del webhook impide que se entreguen las cargas útiles cuando se desencadena el webhook.
- Activar webhook: cuando un webhook esté en un estado inactivo, haga clic en Inactivo. Se le pedirá que confirme el cambio de estado. Haga clic en Confirmar para activar el webhook. Una vez que se ha activado un webhook, reanudará la entrega de cargas.
- Editar webhook: haga clic en el botón de opciones del webhook y haga clic en Editar para actualizar los eventos desencadenadores de su webhook o el notebook especificado para el webhook.
- Eliminar webhook: haga clic en el botón de opciones del webhook y haga clic en Eliminar. Haga clic en Confirmar para eliminar el webhook.
Configuración de webhooks avanzada
Utilice Configuración de webhooks avanzada para cambiar propiedades como el número de intentos de entrega que se pueden realizar, notificaciones para el tiempo transcurrido y propiedades de tiempo de espera de notificación para webhooks. Esta configuración avanzada se aplicará a todos los webhooks del portal. Siga estos pasos para hacer cambios en Configuración de webhooks avanzada:
- Inicie sesión como administrador predeterminado o con un rol personalizado con el privilegio de webhooks de la organización.
- Vaya a Organización > Configuración > Webhooks > Configuración de webhooks avanzada para modificar los valores predeterminados de las propiedades avanzadas del webhook.
Carga de webhooks
Cuando se ejecuta un notebook mediante un webhook, la información de carga del webhook se introduce automáticamente en el notebook en una celda inicial. Una vez introducida, la información proporcionada en la carga de webhooks se puede utilizar en el notebook para más flujos de trabajo de automatización.
Información de carga de webhooks incluida en un notebook:{
"properties": {
"itemId": "<itemId of the current notebook>"
},
"events": [
{
"source": "items",
"id": "<itemId of the item that resulted in webhook trigger>",
"userId": "<webhook user>",
"when": \<epoch time in ms when webhook was triggered\>,
"operation": "<type of operation that resulted in webhook trigger>",
"properties": {},
"username": "<webhook username>"
}
],
"info": {
"webhookId": "<webhookId>",
"portalURL": "<public portal url>",
"webhookName": "<webhook name>",
"when": \<epoch time in ms when webhook was triggered\>,
}
}
Ejecutar la API del notebook
Los administradores y los creadores de notebooks también pueden automatizar un notebook para que se ejecute sin interacción del usuario con la operación Ejecutar notebook en el Directorio de administrador de ArcGIS Notebook Server. Esta operación ejecutará automáticamente un notebook cuando se invoque, pero si utiliza su propio script personalizado, puede programar que la ejecución automática se produzca a una hora determinada o en un horario regular. También puede utilizar un trabajo de cron o un programador de Windows para programar que la operación Ejecutar notebook se ejecute a una hora determinada o según un intervalo recurrente.
Para más información, consulte el tema Ejecutar notebook en la guía de referencia del Directorio de administrador.