Skip To Content

使用 ArcGIS Notebooks 自动化工作流

ArcGIS Notebook Server 允许您实现多种工作流自动化方法,实现途径包括计划的笔记本、webhook 和您自己的使用执行笔记本管理 API 的自定义脚本。

注:

要使用计划任务、webhook 或执行笔记本 API 自动化笔记本,笔记本必须使用 3.0 或更高版本的运行时。

计划笔记本任务

自 10.8.1 版本起,笔记本作者可以计划 ArcGIS Notebooks,以便在未来的某个固定时间自动运行一次或重复运行。 通过创建任务来计划笔记本,可供自动执行常规工作流、在非高峰时段运行数据密集型过程以及定期更新数据集。 例如,可以计划笔记本以执行以下操作:

  • 从每月更新一次的在线源导入数据,自动清除数据并应用必要的转换,然后将数据移至您的工作空间。
  • 当计算机资源未被使用时,在夜间运行需要强大处理能力的大数据分析工作流。
  • 管理过去一周内在门户中创建了帐户的用户,并通过电子邮件将列表发送给您。

您可以为笔记本创建一个或多个任务。 默认情况下,笔记本作者或管理员最多可以创建 20 个任务。 如果笔记本的所有权发生变化,与该笔记本相关联的任何任务都将取消激活并分配给新的所有者。

您可通过计划任务参数化笔记本。 笔记本参数化后,您可以写入通用代码,无需您的交互即可适应不同的输入。 运行任务时,所选参数会插入到笔记本中,并且可以选择将其保存到笔记本。 例如,参数化笔记本可用于定期生成区域范围内的空气污染报告。 笔记本可以有多个计划任务,每个要研究的区域使用一个任务,并且对于每个任务,可以将城市名称和污染类型等参数化输入送入笔记本。

注:

同时运行的笔记本任务数量受限于 Notebook Server 中的 maxExecuteNotebookContainersPerNode 系统属性。

您可以将任务配置为在完成后将笔记本的状态保存到原始笔记本项目中。

将为每个运行的计划任务保存笔记本的静态 HTML 视图。 默认情况下,只会保存最近 30 次运行的结果。

使用 ArcGIS Notebook Server Manager 中的任务页面,管理员可以查看详细信息,或者编辑、暂停/恢复或删除站点中的活动笔记本任务。 具有计划笔记本权限的管理员和笔记本作者可以在笔记本的详细信息页面或笔记本编辑器的任务窗格中查看详细信息,或者编辑、暂停/恢复或删除笔记本任务。

为防止笔记本重复运行失败,计划任务将在连续 5 次失败后禁用。 在重新激活任务之前,任务所有者必须确保笔记本可以在没有任何用户交互的情况下成功运行。

如果任务之前的运行仍在继续,则将跳过新的计划任务运行。 例如,如果某个任务计划每 15 分钟运行一次,但该任务的一个实例运行了 20 分钟,则将跳过下一次计划运行。 如果这种情况经常发生,任务所有者应该调整计划的时间间隔,以便运行之间没有重叠。

有关计划的笔记本任务的详细信息,请参阅计划笔记本任务帮助主题。

使用 webhook 自动化笔记本

Webhook 是一种允许应用程序为其他应用程序提供事件驱动型信息的机制。 作为 ArcGIS Enterprise Portal 管理员或具有组织 webhook 权限的用户,您可以创建、管理和配置 webhook。 您可以将 webhook 配置为在与您的门户项目、群组或用户关联的事件发生时自动运行您拥有的笔记本。 您的 ArcGIS Notebook Server 将作为 webhook 负载的接收器。 触发 webhook 后,会向 Notebook Server 发出 HTTP 请求以运行所选笔记本,无需任何用户交互。

注:

通过 webhook 同时运行的笔记本数量受限于 Notebook Server 中的 maxExecuteNotebookContainersPerNode 系统属性。

创建 webhook

可以从门户的组织设置页面管理 webhook。 使用以下步骤创建 webhook:

  1. 以默认管理员或具有组织 webhook 权限的自定义角色身份登录。
  2. 浏览至组织 > 设置 > Webhook
  3. 单击创建 webhook
  4. 指定 webhook 名称。

    Name=mynotebook_webhook

  5. 指定将触发 webhook 的事件类型。

    默认情况下,将考虑所有事件类型(项目、用户、群组和角色)。

  6. 使用触发器接受默认值 (/) 或指定一个或多个值作为触发器事件。

    Events=/items, /items/<itemId>,/users

    有关详细信息,请参阅支持的触发事件

    有关其他示例,请参阅触发器事件

  7. 选择笔记本作为负载类型。

    注:
    如果笔记本选项不可用,则表示未将 Notebook Server 配置到门户。 如果笔记本可用但是无法选择此项,则表示您没有任何可用于配置 webhook 的笔记本。 您必须是将用于 webhook 的笔记本项目的所有者。

  8. 选择触发 webhook 时将运行的笔记本。
  9. 可以选择性地输入一个将包含在 webhook 负载中的密钥

    您也可以选择为密钥使用预先生成的随机值。

  10. 单击创建 webhook 以保存 webhook 设置并创建 webhook。

管理 webhook

可以从门户的组织设置页面管理 webhook。 使用以下步骤管理现有 webhook:

  1. 以默认管理员或具有组织 webhook 权限的自定义角色身份登录。
  2. 浏览至组织 > 设置 > Webhook以查看一系列由您和其他 webhook 管理员创建的 webhook。

可以通过以下操作管理您的现有 webhook。

  • 取消激活 webhook - 当 webhook 处于活动状态时,单击活动。 系统将提示您是否确认修改状态。 单击确认以取消激活 webhook。 取消激活 webhook 后,将停止在触发 webhook 时传送负载。
  • 激活 webhook - 当 webhook 处于非活动状态时,单击非活动。 系统将提示您是否确认修改状态。 单击确认以激活 webhook。 Webhook 被激活后将继续传送负载。
  • 编辑 webhook - 单击 webhook 上的选项按钮,然后单击编辑以更新 webhook 的触发器事件或为 webhook 指定的笔记本。
  • 删除 webhook - 单击 webhook 上的选项按钮,然后单击删除。 单击确认以删除 webhook。

高级 webhook 设置

使用高级 webhook 设置可更改多项属性,例如可以执行的传送尝试次数、已用时间通知和 webhook 的通知超时属性。 这些高级设置将应用于所有门户 webhook。 按照以下步骤操作以修改高级 webhook 设置:

  1. 以默认管理员或具有组织 webhook 权限的自定义角色身份登录。
  2. 浏览至组织 > 设置 > Webhook > 高级 webhook 设置以修改高级 webhook 属性的默认值。

Webhook 负载

当通过 webhook 运行笔记本时,webhook 的负载信息会自动加入到笔记本的初始单元格中。 加入后,webhook 负载中提供的信息可以在 Notebook 中用于进一步自动化工作流。

包含在 Notebook 中的 Webhook 负载信息:

{
  "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\>,
  }
}

执行笔记本 API

管理员和笔记本作者还可以在 ArcGIS Notebook Server Administrator Directory 中使用“执行笔记本”操作自动运行笔记本,而无需用户控制。 此操作将在调用时自动运行笔记本,但是通过使用您自己的自定义脚本,您可以将其计划为在设置的时间或定期自动运行。 cron 作业或 Windows 计划程序也可用于计划“执行笔记本”操作以在设置的时间或按照循环间隔运行。

要了解详细信息,请参阅 Administrator Directory reference 参考指南中的执行笔记本主题。

自动化笔记本同时运行的最大数量

当笔记本通过计划任务、webhook 或执行笔记本 API 运行时,ArcGIS Notebook Server 会自动打开一个新容器并在没有任何用户交互的情况下运行笔记本。 默认情况下,ArcGIS Notebook Server 配置为每台 Notebook Server 计算机最多同时支持 10 个笔记本运行。 考虑到 Notebook Server 站点中每台计算机上可用的资源(CPU 和 RAM),管理员可以通过修改 Notebook Server 中的 maxExecuteNotebookContainersPerNode 系统属性来调整限制。