Автоматизация рабочих процессов с помощью ArcGIS Notebooks

Notebook services позволяет реализовать несколько методов автоматизации рабочего процесса, включая автоматизацию с помощью запланированных блокнотов, вебхуков и пользовательских скриптов с использованием административного API Execute Notebook.

Примечание:

Чтобы автоматизировать блокнот с помощью запланированных задач, вебхуков или Run Notebook API, блокнот должен использовать рабочую среду версии 3.0 или более поздней.

Планирование задач блокнота

Авторы блокнота могут запланировать ArcGIS Notebooks на автоматическое выполнение в определенное время в будущем, однократно либо с определенной периодичностью. Создание задач для планирования блокнотов позволяет автоматизировать рутинные рабочие процессы, запускать процессы с интенсивным использованием данных во вне пиковые часы использования и регулярно обновлять наборы данных. Например, вы можете запланировать блокнот, чтобы выполнить следующее:

  • Импортировать данные из онлайн-источника, который обновляется ежемесячно, автоматически очистить данные и применить необходимые преобразования, а также переместить данные в рабочую область
  • Выполнить рабочий процесс анализа больших данных, который требует большой вычислительной мощности в ночные часы, когда ресурсы вашего компьютера в остальном не используются
  • Управлять пользователями, которые создали учетные записи в вашей организации за последнюю неделю, и отправлять список вам по электронной почте

Вы можете создать одну или несколько задач для блокнота. По умолчанию автор или администратор блокнота может создать не более 20 задач. Если владелец блокнота изменится, любые задачи, связанные с этим блокнотом, будут деактивированы и назначены новому владельцу.

Запланированные задачи позволяют параметризовать блокноты. Когда блокнот параметризирован, он позволяет вам писать общий код, который можно адаптировать к различным входным данным без вашего участия. Выбранные параметры вставляются в блокнот при запуске задачи и при желании могут быть сохранены в нем. Например, параметризованный блокнот можно использовать для периодического создания региональных отчетов о загрязнении воздуха. В блокноте может быть несколько запланированных задач, по одной для каждого изучаемого региона, и для каждой задачи в блокнот можно вводить параметризованные входные данные, такие как название города и тип загрязнения.

Примечание:

Администраторы могут просматривать подробную информацию, редактировать, приостанавливать и возобновлять работу или удалять активную задачу блокнота на сайте в окне Управление задачами.

Вы можете настроить задачу для сохранения состояния блокнота в исходный элемент блокнота после завершения.

Статический HTML-вид блокнота будет сохраняться для каждой запущенной запланированной задачи.

С помощью окна Управление задачами на главной странице Notebook services администраторы могут просматривать детали, редактировать, приостанавливать, возобновлять или удалять активные задачи блокнота на сайте. Администраторы и авторы блокнота с полномочиями расписания блокнота могут просматривать сведения, редактировать, приостанавливать и возобновлять или удалять задачу блокнота на странице сведений блокнота или на панели задач редактора блокнота.

Если предыдущий запуск задачи все еще выполняется, запуск новой запланированной задачи будет пропущен. Например, если задача запланирована на запуск каждые 15 минут, но экземпляр этой задачи выполняется в течение 20 минут, следующее запланированное выполнение будет пропущено. Если это происходит регулярно, владелец задачи должен настроить запланированный временной интервал, чтобы не было перекрытия между запусками.

Дополнительные сведения о запланированных задачах блокнота см. в разделе справки Планирование задачи блокнота.

Ограничения запланированных задач

Существуют определенные ограничения на уровне пользователя и организации, связанные с запланированными задачами блокнота.

Изменение максимального количества одновременных автоматических запусков блокнотов (maxAutomatedNotebookJobsPerManager)

Когда блокнот работает по заданному для задачи расписанию, с помощью вебхука или Execute Notebook API, Notebook services автоматически открывает новый развертывания и запускает блокнот без участия пользователя. По умолчанию Notebook services настроен на запуск не более 10 одновременных запусков блокнота на каждом развертывание сервиса автоматизации блокнотов. Учитывая ресурсы, доступные в кластере Kubernetes, администратор может изменить это ограничение, изменив свойство конфигурации maxAutomatedNotebookJobsPerManager Notebook services. Любой запрос к автоматизированному блокноту, поданный после того, как ограничение превышено, будет добавлен в очередь и запущен, как только количество запусков автоматических задач упадет ниже этого ограничения. Поставленные в очередь задачи не будут выполняться, если время ожидания превысит время таймаута.

Примечание:

Это не ограничивает количество блокнотов, которые выполняются в интерактивном режиме из редактора блокнотов.

Изменить установленное ограничение maxAutomatedNotebookJobsPerManager можно, выполнив следующие действия.

Примечание:

Увеличение ограничения может привести к использованию дополнительных ресурсов на узлах.

  1. Войдите на ArcGIS Enterprise Administrator API как администратор.
  2. Щелкните Блокноты > Конфигурация > Обновить конфигурацию.
  3. Щелкните Настройки > Сайт.
  4. Измените значение свойства maxAutomatedNotebookJobsPerManager.
  5. Щелкните Обновить конфигурацию блокнота.

Максимальное количество активных запланированных задач блокнота на одного пользователя

Авторы блокнотов, обладающие правами составления расписаний для блокнотов, могут создавать не более, чем по 20 активных задач блокнотов. По достижении этого значения пользователь не сможет создавать новые задачи по расписанию. Новую задачу можно создать после того, как существующая задача перейдет из состояния Активна в состояние Завершена, Не удалось (Не выполнено) или Неактивна. Это предельное значение можно изменить, изменив свойство ExecuteNotebooksUserLimit с помощью операции Обновить ограничения в ArcGIS Enterprise Administrator API.

Максимальное количество активных запланированных задач блокнота для одной организации

Максимальное число активных запланированных задач блокнота для одной организации не может превышать 200. Это ограничение определяет общее количество активных задач, принадлежащих всем пользователям в организации. По достижении этого значения пользователи не смогут создавать новые задачи блокнота по расписанию. Это предельное значение можно настроить, изменив операцию ExecuteNotebooksOrgLimitОбновить ограничения в ArcGIS Enterprise Administrator API.

Количество результатов, которое фиксируется для запланированной задачи

Результаты выполнения задач фиксируются и сохраняются для 30 задач. Любые задачи, которые были созданы до последних 30 задач, удаляются безвозвратно. Это предельное значение можно изменить, изменив свойство TaskRunHistoryCount с помощью операции Обновить ограничения в ArcGIS Enterprise Administrator API.

Автоматический отказ выполнения задачи

Задачи, завершившиеся неудачей пять раз подряд, будут автоматически переведены в состояние отказа и больше не будут выполняться. Владелец задачи должен убедиться, что блокнот может быть успешно запущен без какого-либо взаимодействия с пользователем, прежде чем повторно активировать задачу. Чтобы обеспечить дальнейшее выполнение задач, владелец задачи должен выявить и устранить сбой и перевести эту задачу в состояние Активная. Это предельное значение можно изменить, изменив свойство FailedRunsDisableTask с помощью операции Обновить ограничения в ArcGIS Enterprise Administrator API.

Автоматическое выполнение блокнота с помощью вебхуков организации

Вебхук – это механизм, позволяющий приложению предоставлять другим приложениям информацию, управляемую событиями. Как администратор ArcGIS Enterprise или пользователь с правами на Вебхуки организации вы можете создавать вебхуки, управлять ими и настраивать их. Вы можете настроить вебхуки на автоматическое выполнение блокнота, которым вы владеете, когда происходят события, связанные с вашими элементами, группами или пользователями. Notebook services действует как получатель полезных данных вебхука. После запуска вебхука к Notebook services отправляется HTTP-запрос для запуска выбранного блокнота без какого-либо взаимодействия с пользователем.

Примечание:

Количество одновременных выполнений задач блокнота через вебхуки ограничено системным свойством maxExecuteNotebookContainersPerNode в Notebook services.

Создание вебхука

Вебхуки можно администрировать через страницу Параметры организации. Используйте следующие шаги, чтобы создать вебхук:

  1. Войдите от имени администратора по умолчанию или пользовательской роли, у которой есть права Вебхуки организации.
  2. Щелкните Организация > Настройки > Вебхуки.
  3. Щелкните Создать вебхук.
  4. Укажите имя вебхука.

    Например, вы можете ввести Name=mynotebook_webhook.

  5. Выберите тип события, которое будет запускать вебхук.

    По умолчанию учитываются все типы событий ( Элементы, Пользователи, Группы и Роли).

  6. Используйте Триггер, чтобы принять значение по умолчанию (/), либо укажите одно или несколько значений в качестве событий триггера.

    Например, Events=/items, /items/<itemId>,/users.

    Подробнее см. Поддерживающие инициирующие события.

    Дополнительные примеры см. в Событиях-триггерах.

  7. Выберите Блокнот как тип полезных данных.
  8. Выберите блокнот, который будет запускаться при инициализации вебхука.
  9. Дополнительно введите Секретный ключ, который будет включен в полезную нагрузку вебхука.

    Также вы можете выбрать случайные преднастроенные значения для Секретного ключа.

  10. Щелкните Создать вебхук, чтобы сохранить настройки вебхука и создать его.

Управление вебхуками

Вебхуки можно администрировать через страницу Параметры организации. Для управления существующими вебхуками выполните следующие шаги:

  1. Войдите от имени администратора по умолчанию или пользовательской роли, у которой есть права Вебхуки организации.
  2. Щелкните Организация > Настройки > Вебхуки, чтобы посмотреть список вебхуков, которые были созданы вами или администраторами вебхуков.

Вы можете управлять существующими вебхуками с помощью следующих операций.

  • Деактивировать вебхук - когда у вебхука активный статус, щелкните Активный. Вам будет предложено подтвердить изменение статуса. Нажмите Подтвердить, чтобы деактивировать вебхук. Деактивация вашего вебхука останавливает получение полезных данных при инициализации вебхука.
  • Активировать вебхук - когда у вебхука неактивный статус, щелкните Неактивный. Вам будет предложено подтвердить изменение статуса. Нажмите Подтвердить, чтобы активировать вебхук. Как только вебхук будет активирован, он возобновит доставку полезной нагрузки.
  • Редактировать вебхук - нажмите кнопку опций на вебхуке и нажмите Изменить, чтобы обновить триггерные события вашего вебхука или блокнот, указанный для вебхука.
  • Удалить вебхук - щелкните кнопку опций на вебхуке и затем Удалить. Нажмите Подтвердить, чтобы удалить вебхук.

Дополнительные настройки вебхука

Используйте расширенные настройки вебхуков, чтобы изменить такие свойства, как количество возможных попыток доставки, уведомления о прошедшем времени и свойства времени ожидания уведомлений для вебхуков. Эти расширенные настройки будут применены ко всем вебхукам вашей организации. Чтобы изменить Дополнительные настройки вебхука, выполните следующие действия:

  1. Войдите от имени администратора по умолчанию или пользовательской роли, у которой есть права Вебхуки организации.
  2. Щелкните Организация > Настройки > Вебхуки > Расширенные настройки вебхуков для изменения значений по умолчанию в расширенных свойствах вебхуков.

Полезная нагрузка вебхуков организации

Когда блокнот выполняется из вебхука, информация о полезных данных вебхука автоматически вводится в блокнот в начальной ячейке. После ввода информация, отображаемая в полезных данных вебхука, может использоваться в блокноте для последующих рабочих процессов автоматизации.

Включенная в блокнот информация о полезных данных вебхука:

webhookPayload = {
    "properties": {
        "itemId": "<notebook_item_id>"
    },
    "events": [
        {
            "source": "<items | user | group | role>",
            "id": "<source_id>",
            "userId": "<user_id_of_member_triggered_webhook>",
            "when": 1742596800000,
            "operation": "<operation_triggered_webhook>",
            "properties": {"<operation_details>"},
            "username": "<username_of_member_triggered_webhook>"
        }
    ],
    "info": {
        "webhookId": "<webhook_id>",
        
        "webhookName": "<webhook_name>",
        "when": 1742596805000
    }
}

Автоматическое выполнение блокнота с помощью сервисных вебхуков

Вебхуки, в том числе для асинхронных сервисов геообработки, сервисов объектов и других базовых вебхуков, могут запускать блокнот в ответ на определенные события. Администраторы могут зарегистрировать URL-адрес получателя вебхука в качестве URL-адреса перехвата или нагрузки для этих вебхуков. Когда запускается определенное событие, связанное с вебхуком, оно автоматически вызывает URL-адрес получателя вебхука блокнота, инициируя запуск соответствующего блокнота.

В следующих разделах описывается, как настроить получателя вебхука блокнота в Notebook services.

Создание приложения с ключом API

Ключ API - это долговечный токен, который разрешает вебхуку сервиса запускать связанный элемент блокнота и безопасно получать доступ к возможностям и функциям ArcGIS Enterprise, необходимым для запуска блокнота.

Ключи API генерируются с использованием учетных данных ключа API - типа элемента, размещенного в вашей организации. Учетные данные ключа API содержат настройки, которые позволяют вам генерировать ключи API и управлять такими свойствами, как их права доступа и срок действия. Процесс создания учетных данных ключа API и использования ключей API в вашем приложении называется аутентификацией по ключу API.

Инструкции по созданию ключа API приведены в руководстве Создание ключа API. Предоставьте права на создание и редактирование блокнотов, создание, обновление и удаление элементов, а также, при желании, предоставьте права Advanced блокнота для ArcPy. Могут потребоваться дополнительные права - в зависимости от рабочих процессов, выполняемых в блокноте.

Генерация и копирование ключа API

Чтобы создать и скопировать ключ API, выполните следующие действия:

  1. Войдите как пользователь с правами администратора.
  2. Щелкните страницу Сведения об элементе для элемента ключа API.
  3. Выполните действия, описанные в разделе Копирование ключа API в руководстве Создание ключа API.

Регистрация получателя вебхука блокнота

Чтобы зарегистрировать получателя вебхука блокнота, выполните следующие действия:

  1. Войдите в Administrator Directory как администратор.

    URL – https://organization.domain.com/<context>/admin.

  2. Щелкните Блокноты > Получатели вебхуков > Регистрация получателя вебхука.

    URL – https://organization.domain.com/<context>/admin/notebooks/webhookReceivers/create.

  3. Зарегистрируйте получателя вебхука, используя информацию из раздела Создание приемников вебхука в Administrative API.

    После успешного создания получателя вебхука блокнота, в ответе будет возвращен URL-адрес получателя вебхука. Этот URL-адрес можно использовать в качестве URL-адреса перехвата при регистрации вебхуков асинхронных сервисов геообработки, сервисов объектов и других вебхуков.

Создание вебхука асинхронного сервиса геообработки или вебхука сервиса объектов

Для создания вебхука асинхронного сервиса геообработки или сервиса объектов, выполните следующие шаги:

  1. Используйте URL-адрес получателя вебхука, секретные заголовки и заголовки подписи для создания вебхука сервиса.
  2. Убедитесь, что блокнот, связанный с получателем вебхука блокнота, запускается каждый раз при запуске определенного события службы вебхуков.

Полезная нагрузка вебхуков сервиса

Когда блокнот выполняется из вебхука, информация о полезных данных вебхука автоматически вводится в блокнот в начальной ячейке. После ввода информация, отображаемая в полезных данных вебхука, может использоваться в блокноте для последующих рабочих процессов автоматизации.

Вебхуки сервиса объектов

Следующий код — пример полезной нагрузки вебхука сервиса объектов.

webhookPayload = {
    "serviceType": "FeatureServer",
    "changesUrl": "<change_url>",
    "name": "<webhook_name>",
    "id": "<webhook_id>",
    "folderName": "<folder_name>",
    "serviceName": "<service_name>",
    "events": [
        {
            "eventType": "FeaturesCreated",
            "when": 1740436800000
        },
        {
            "eventType": "FeaturesDeleted",
            "when": 1740436810000
        },
        {
            "eventType": "FeaturesUpdated",
            "when": 1740436820000
        }
    ]
}

Вебхуки сервиса геообработки

Следующий код — пример полезной нагрузки вебхука сервиса геообработки.

webhookPayload = {
    "serviceType": "GPServer",
    "jobId": "<job_id>",
    "statusURL": "<status_url>",
    "name": "<webhook_name>",
    "taskName": "<task_name>",
    "folderName": "<folder_name>",
    "serviceName": "<service_name>",
    "events": [
        {
            "eventType": "esriJobSucceeded",
            "when": 1742337000000
        }
    ]
}

Запуск Notebook API

Администраторы и авторы блокнотов также могут автоматизировать запуск блокнота без взаимодействия с пользователем с помощью операции Выполнить блокнот в ArcGIS Enterprise Administrator API. Эта операция автоматически запускает блокнот при вызове, но с помощью пользовательского скрипта вы можете запланировать автоматическое выполнение в установленное время или по регулярному расписанию. Задание cron или планировщик Windows также можно использовать для планирования выполнения операции Выполнить блокнот в заданное время или через повторяющийся интервал.

Дополнительные сведения см. в разделе Выполнить блокнот в справке Administrator Directory.