ArcGIS Notebook Server позволяет реализовать несколько методов автоматизации рабочего процесса, включая автоматизацию с помощью запланированных блокнотов, вебхуков и пользовательских скриптов с использованием административного API Execute Notebook.
Примечание:
Чтобы автоматизировать блокнот с помощью запланированных задач, вебхуков или Run Notebook API, блокнот должен использовать рабочую среду версии 3.0 или более поздней.
Планирование задач блокнота
Начиная с версии 10.8.1, авторы блокнота могут запланировать ArcGIS Notebooks на автоматическое выполнение в определенное время в будущем, однократно либо с определенной периодичностью. Создание задач для планирования блокнотов позволяет автоматизировать рутинные рабочие процессы, запускать процессы с интенсивным использованием данных во вне пиковые часы использования и регулярно обновлять наборы данных. Например, вы можете запланировать блокнот, чтобы выполнить следующее:
- Импортировать данные из онлайн-источника, который обновляется ежемесячно, автоматически очистить данные и применить необходимые преобразования, а также переместить данные в рабочую область.
- Выполнить рабочий процесс анализа больших данных, который требует большой вычислительной мощности в ночные часы, когда ресурсы вашего компьютера в остальном не используются.
- Управлять пользователями, которые создали учетные записи на вашем портале за последнюю неделю, и отправить себе список по электронной почте.
Вы можете создать одну или несколько задач для блокнота. По умолчанию автор или администратор блокнота может создать не более 20 задач. Если владелец блокнота изменится, любые задачи, связанные с этим блокнотом, будут деактивированы и назначены новому владельцу.
Запланированные задачи позволяют параметризовать блокноты. Когда блокнот параметризирован, он позволяет вам писать общий код, который можно адаптировать к различным входным данным без вашего участия. Выбранные параметры вставляются в блокнот при запуске задачи и при желании могут быть сохранены в нем. Например, параметризованный блокнот можно использовать для периодического создания региональных отчетов о загрязнении воздуха. В блокноте может быть несколько запланированных задач, по одной для каждого изучаемого региона, и для каждой задачи в блокнот можно вводить параметризованные входные данные, такие как название города и тип загрязнения.
Примечание:
Количество одновременных выполнений задач блокнота ограничено системным свойством maxExecuteNotebookContainersPerNode в Notebook Server.
Вы можете настроить задачу для сохранения состояния блокнота в исходный элемент блокнота после завершения.
Статический HTML-вид блокнота будет сохраняться для каждой запущенной запланированной задачи.
С помощью окна Управление задачами на главной странице ArcGIS Notebook Server или со страницы Задачи в ArcGIS Notebook Server Manager администраторы могут просматривать детали, редактировать, приостанавливать, возобновлять или удалять активные задачи блокнота на сайте. Администраторы и авторы блокнота с полномочиями расписания блокнота могут просматривать сведения, редактировать, приостанавливать и возобновлять или удалять задачу блокнота на странице сведений блокнота или на панели задач редактора блокнота.
Если предыдущий запуск задачи все еще выполняется, запуск новой запланированной задачи будет пропущен. Например, если задача запланирована на запуск каждые 15 минут, но экземпляр этой задачи выполняется в течение 20 минут, следующее запланированное выполнение будет пропущено. Если это происходит регулярно, владелец задачи должен настроить запланированный временной интервал, чтобы не было перекрытия между запусками.
Дополнительные сведения о запланированных задачах блокнота см. в разделе справки Планирование задачи блокнота.
Ограничения запланированных задач
Существуют определенные ограничения на уровне пользователя, организации и сайта ArcGIS Notebook Server (компьютера), связанные с запланированными задачами блокнота.
Изменение максимального количества одновременных автоматических запусков блокнотов (maxExecuteNotebookContainersPerNode)
Когда блокнот работает по заданному для задачи расписанию, с помощью вебхука или Execute Notebook API, ArcGIS Notebook Server автоматически открывает новый контейнер и запускает блокнот без участия пользователя. По умолчанию ArcGIS Notebook Server настроен на запуск не более 10 одновременных запусков блокнота на каждом компьютере Notebook Server. Учитывая ресурсы (CPU и RAM), доступные на каждом компьютере сайта Notebook Server, администратор может изменить это значение, изменив системное свойство maxExecuteNotebookContainersPerNode в Notebook Server. Любой запрос к автоматизированному блокноту, поданный после того, как ограничение превышено, будет добавлен в очередь и запущен, как только количество запусков автоматических задач упадет ниже этого ограничения. Поставленные в очередь задачи не будут выполняться, если время ожидания превысит время таймаута.
Примечание:
Это не ограничивает количество блокнотов, которые выполняются в интерактивном режиме из редактора блокнотов.
Изменить установленное ограничение maxExecuteNotebookContainersPerNode можно, выполнив следующие действия.
Примечание:
Увеличение ограничения может привести к использованию дополнительных ресурсов на компьютере Notebook Server.
- Войдите на портал ArcGIS Enterprise как администратор.
- Откройте ArcGIS Notebook Server Manager.
- Щелкните Настройки > Сайт.
- Измените значение свойства maxExecuteNotebookContainersPerNode.
- Щелкните Сохранить.
- Ознакомьтесь с предупреждением о перезапуске Notebook Server и нажмите Сохранить и перезапустить, чтобы сохранить изменения.
Максимальное количество активных запланированных задач блокнота на одного пользователя
Авторы блокнотов, обладающие правами составления расписаний для блокнотов, могут создавать не более, чем по 20 активных задач блокнотов. По достижении этого значения пользователь не сможет создавать новые задачи по расписанию. Новую задачу можно создать после того, как существующая задача перейдет из состояния Активна в состояние Завершена, Не удалось (Не выполнено) или Неактивна. Это предельное значение можно изменить, изменив свойство ExecuteNotebooksUserLimit с помощью операции Обновить ограничения системы в ArcGIS Portal Administrator API.
Максимальное количество активных запланированных задач блокнота для одной организации
Максимальное количество активных запланированных задач блокнота для одной организации не может превышать числа 200. Это ограничение определяет общее количество активных задач, принадлежащих всем пользователям в организации Portal. По достижении этого значения пользователи не смогут создавать новые задачи блокнота по расписанию. Это предельное значение можно изменить, изменив свойство ExecuteNotebooksOrgLimit с помощью операции Обновить ограничения системы в ArcGIS Portal Administrator API.
Количество результатов, которое фиксируется для запланированной задачи
Результаты выполнения задач фиксируются и сохраняются для 30 задач. Любые задачи, которые были созданы до последних 30 задач, удаляются безвозвратно. Это предельное значение можно изменить, изменив свойство TaskRunHistoryCount с помощью операции Обновить ограничения системы в ArcGIS Portal Administrator API.
Автоматический отказ выполнения задачи
Задачи, завершившиеся неудачей пять раз подряд, будут автоматически переведены в состояние отказа и больше не будут выполняться. Владелец задачи должен убедиться, что блокнот может быть успешно запущен без какого-либо взаимодействия с пользователем, прежде чем повторно активировать задачу. Чтобы обеспечить дальнейшее выполнение задач, владелец задачи должен выявить и устранить сбой и перевести эту задачу в состояние Активная. Это предельное значение можно изменить, изменив свойство FailedRunsDisableTask с помощью операции Обновить ограничения системы в ArcGIS Portal Administrator API.
Автоматическое выполнение блокнота с помощью вебхуков организации
Вебхук – это механизм, позволяющий приложению предоставлять другим приложениям информацию, управляемую событиями. Как администратор ArcGIS Enterprise Portal или пользователь с правами на Вебхуки организации вы можете создавать вебхуки, управлять ими и настраивать их. Вы можете настроить вебхуки на автоматическое выполнение блокнота, которым вы владеете, когда происходят события, связанные с вашими элементами портала, группами или пользователями. Notebook Server действует как получатель полезных данных вебхука. После запуска вебхука, к Notebook Server отправляется HTTP-запрос для запуска выбранного блокнота без какого-либо взаимодействия с пользователем.
Примечание:
Количество одновременных выполнений задач блокнота через вебхуки ограничено системным свойством maxExecuteNotebookContainersPerNode в Notebook Server.
Создание вебхука
Вебхуки можно администрировать через страницу Параметры организации. Используйте следующие шаги, чтобы создать вебхук:
- Войдите от имени администратора по умолчанию или пользовательской роли, у которой есть права Вебхуки организации.
- Перейдите к Организация > Настройки > Вебхуки.
- Щелкните Создать вебхук.
- Укажите имя вебхука.
Например, вы можете ввести Name=mynotebook_webhook.
- Выберите тип события, которое будет запускать вебхук.
По умолчанию учитываются все типы событий ( Элементы, Пользователи, Группы и Роли).
- Используйте Триггер, чтобы принять значение по умолчанию (/), либо укажите одно или несколько значений в качестве событий триггера.
Например, Events=/items, /items/<itemId>,/users.
Подробнее см. Поддерживающие инициирующие события.
Дополнительные примеры см. в Событиях-триггерах.
- Выберите Блокнот как тип полезных данных.
Примечание:
Если опция Блокнот недоступна, Notebook Server не настроен на работу с вашим порталом. Если опция Блокнот доступна, но ее невозможно выбрать, значит, у вас нет блокнотов, для которых доступна настройка вебхуков. У вас должен быть элемент блокнота, который будет использоваться для вебхука. - Выберите блокнот, который будет запускаться при инициализации вебхука.
- Дополнительно введите Секретный ключ, который будет включен в полезную нагрузку вебхука.
Также вы можете выбрать случайные преднастроенные значения для Секретного ключа.
- Щелкните Создать вебхук, чтобы сохранить настройки вебхука и создать его.
Управление вебхуками
Вебхуки можно администрировать через страницу Параметры организации. Для управления существующими вебхуками выполните следующие шаги:
- Войдите от имени администратора по умолчанию или пользовательской роли, у которой есть права Вебхуки организации.
- Перейдите в меню Организация > Настройки > Вебхуки, чтобы посмотреть список вебхуков, которые были созданы вами или администраторами вебхуков.
Вы можете управлять существующими вебхуками с помощью следующих операций.
- Деактивировать вебхук - когда у вебхука активный статус, щелкните Активный. Вам будет предложено подтвердить изменение статуса. Нажмите Подтвердить, чтобы деактивировать вебхук. Деактивация вашего вебхука останавливает получение полезных данных при инициализации вебхука.
- Активировать вебхук - когда у вебхука неактивный статус, щелкните Неактивный. Вам будет предложено подтвердить изменение статуса. Нажмите Подтвердить, чтобы активировать вебхук. Как только вебхук будет активирован, он возобновит доставку полезной нагрузки.
- Редактировать вебхук - нажмите кнопку опций на вебхуке и нажмите Изменить, чтобы обновить триггерные события вашего вебхука или блокнот, указанный для вебхука.
- Удалить вебхук - щелкните кнопку опций на вебхуке и затем Удалить. Нажмите Подтвердить, чтобы удалить вебхук.
Дополнительные настройки вебхука
Используйте расширенные настройки вебхуков, чтобы изменить такие свойства, как количество возможных попыток доставки, уведомления о прошедшем времени и свойства времени ожидания уведомлений для вебхуков. Эти расширенные настройки будут применены ко всем вебхукам портала. Чтобы изменить Дополнительные настройки вебхука, выполните следующие действия:
- Войдите от имени администратора по умолчанию или пользовательской роли, у которой есть права Вебхуки организации.
- Перейдите к Организация > Настройки > Вебхуки > Расширенные настройки вебхуков для изменения значений по умолчанию в расширенных свойствах вебхуков.
Полезные данные вебхука
Когда блокнот выполняется из вебхука, информация о полезных данных вебхука автоматически вводится в блокнот в начальной ячейке. После ввода информация, отображаемая в полезных данных вебхука, может использоваться в блокноте для последующих рабочих процессов автоматизации.
Включенная в блокнот информация о полезных данных вебхука:
{
"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\>,
}
}
Автоматическое выполнение блокнота с помощью сервисных вебхуков
Веб-приложения, представленные в качестве бета-версии в ArcGIS Notebook Server 11.4, в том числе для асинхронных сервисов геообработки, сервисов объектов и других базовых вебхуков, могут запускать блокнот в ответ на определенные события. Администраторы могут зарегистрировать URL-адрес получателя вебхука в качестве URL-адреса перехвата или нагрузки для этих вебхуков. Когда запускается определенное событие, связанное с вебхуком, оно автоматически вызывает URL-адрес получателя вебхука блокнота, инициируя запуск соответствующего блокнота.
В следующих разделах описывается, как настроить получателя вебхука блокнота в ArcGIS Notebook Server.
Создание приложение с ключом API
Ключ API - это долговечный токен, который разрешает вебхуку сервиса запускать связанный элемент блокнота и безопасно получать доступ к возможностям и функциям ArcGIS Enterprise, необходимым для запуска блокнота.
Ключи API генерируются с использованием учетных данных ключа API - типа элемента, размещенного на вашем портале. Учетные данные ключа API содержат настройки, которые позволяют вам генерировать ключи API и управлять такими свойствами, как их права доступа и срок действия. Процесс создания учетных данных ключа API и использования ключей API в вашем приложении называется аутентификацией по ключу API.
Инструкции по созданию ключа API приведены в руководстве Создание ключа API.
Примечание:
Перед выполнением последнего шага копирования кэша выполните действия, описанные в разделах ниже, чтобы применить любые дополнительные права доступа, необходимые для запуска блокнота.
Применение прав доступа к приложению с ключом API
Чтобы применить дополнительные права доступа к приложению с ключом API, выполните следующие действия:
- Войдите в директорию Portal, используя учетные данные администратора, которые применялись для создания ключа API.
URL-адрес директории Portal - это https://portal.domain.com/webadaptorname/sharing/rest.
После выполнения входа вы будете перенаправлены на страницу Пользовательские ресурсы.
URL-адрес страницы Пользовательские ресурсы - https://portal.domain.com/webadaptorname/sharing/rest/community/users/<username>
- Щелкните Пользовательские ресурсы.
- Нажмите на ссылку элемента, соответствующего вашему недавно созданному ключу API.
Откроется страница сведений об элементе API для ключа API: https://portal.domain.com/webadaptorname/sharing/rest/community/users/<username>/items/<itemId>
- Щелкните Обновить приложение
- Добавьте следующие права в разделе Права доступа.
- Предоставьте разрешение на запуск блокнота: "premium:publisher:createNotebooks"
- Дополнительно разрешите импорт и использование ArcPy в соответствующем блокноте: "premium:publisher:createAdvancedNotebooks"
- Добавьте все остальные необходимые права доступа для успешного выполнения кода блокнота.
Следующий пример ключа API предоставляет права доступа к элементу блокнота, на который ссылается его ItemId, права для стандартных и расширенных блокнотов, а также права для публикации слоев объектов.
[ "portal:app:access:item:bfebec55911a4cd2a85ff9eae51dcf68", "premium:publisher:createAdvancedNotebooks", "premium:publisher:createNotebooks", "portal:user:createItem", "portal:publisher:publishFeatures" ]
- Щелкните Обновить приложение, чтобы сохранить изменения.
- Выйдите из директории Portal.
Генерация и копирование ключа API
Выполните следующие действия, чтобы сгенерировать и скопировать ключ API:
- Войдите на портал как пользователь с правами администратора.
- Щелкните страницу Сведения об элементе для элемента ключа API.
- Выполните действия, описанные в разделе Копирование ключа API в руководстве Создание ключа API.
Регистрация получателя вебхука блокнота
Чтобы зарегистрировать получателя вебхука блокнота, выполните следующие действия:
- Войдите в директорию ArcGIS Notebook Server Administrator, используя учетные данные администратора портала.
URL – https://notebookserverwebadaptor.domain.com/webadaptor/admin.
- Щелкните Блокноты > Получатели вебхуков > Регистрация получателя вебхука.
URL – https://notebookserverwebadaptor.domain.com/webadaptor/admin/notebooks/webhookReceivers/create.
- Зарегистрируйте получателя вебхука, используя информацию из раздела Создание получателя вебхука в Administrative API.
После успешного создания получателя вебхука блокнота, в ответе будет возвращен URL-адрес получателя вебхука. Этот URL-адрес можно использовать в качестве URL-адреса перехвата при регистрации вебхуков асинхронных сервисов геообработки, сервисов объектов и других вебхуков.
Создание вебхука асинхронного сервиса геообработки или вебхука сервиса объектов
Для создания вебхука асинхронного сервиса геообработки или сервиса объектов, выполните следующие шаги:
- Используйте URL-адрес получателя вебхука, секретные заголовки и заголовки подписи для создания вебхука асинхронного сервиса.
- Убедитесь, что блокнот, связанный с получателем вебхука блокнота, запускается каждый раз при запуске определенного события службы вебхуков.
Execute Notebook API
Администраторы и авторы блокнотов также могут автоматизировать запуск блокнота без взаимодействия с пользователем с помощью операции Выполнить блокнот в ArcGIS Notebook Server Administrator Directory. Эта операция автоматически запускает блокнот при вызове, но с помощью пользовательского скрипта вы можете запланировать автоматическое выполнение в установленное время или по регулярному расписанию. Задание cron или планировщик Windows также можно использовать для планирования выполнения операции Выполнить блокнот в заданное время или через повторяющийся интервал.
Дополнительные сведения см. в разделе Выполнить блокнот в справке Administrator Directory.