Skip To Content

使用 ArcGIS Notebooks 自动化工作流

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

注:

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

计划笔记本任务

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

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

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

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

注:

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

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

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

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

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

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

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

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

计划任务限制

与计划的笔记本任务相关,存在某些用户、组织和 ArcGIS Notebook Server 站点(计算机)级别限制。

自动化 notebook 同时运行的最大数量 (maxExecuteNotebookContainersPerNode)

当笔记本通过计划任务、webhook 或执行笔记本 API 运行时,ArcGIS Notebook Server 会自动打开一个新容器并在没有用户交互的情况下运行笔记本。 默认情况下,ArcGIS Notebook Server 配置为每台 Notebook Server 计算机最多同时支持 10 个 notebook 运行。 考虑到 Notebook Server 站点中每台计算机上可用的资源(CPU 和 RAM),管理员可以通过修改 Notebook Server 中的 maxExecuteNotebookContainersPerNode 系统属性来调整限制。 超过此限制后提交的任何自动化 notebook 请求都将添加到队列中,并在自动化任务运行数量低于此限制时运行。 如果等待时间超过超时时间,排队任务将失败。

注:

这不会限制从 notebook 编辑器交互运行的 notebook 的数量。

要更改 maxExecuteNotebookContainersPerNode 限制,请执行以下步骤。

注:

增加限制可能会导致 Notebook Server 使用额外的资源。

  1. 以管理员身份登录 ArcGIS Enterprise 门户。
  2. 打开 ArcGIS Notebook Server Manager
  3. 单击设置 > 站点
  4. 更改 maxExecuteNotebookContainersPerNode 属性的值。
  5. 单击保存
  6. 查看有关重新启动 Notebook Server 的警告,然后单击保存并重新启动以保存更改。

每个用户的最大活动计划 notebook 任务数

每个具有计划 notebook 权限的 notebook 作者最多可以创建 20 个活动 notebook 任务。 达到此限制后,用户将无法创建新的计划任务。 现有任务从“活动”更改为“完成”、“失败”或“非活动”,就可以创建新任务。 可以通过使用 ArcGIS Portal Administrator API 中的更新系统限制操作更新 ExecuteNotebooksUserLimit 属性来更改此限制。

每个组织的最大活动计划 notebook 任务数

组织的最大活动计划 notebook 任务限制为 200。 此限制表示门户组织中所有用户可以拥有的活动任务总数。 达到此限制后,用户将无法创建新的计划 notebook 任务。 可以通过使用 ArcGIS Portal Administrator API 中的更新系统限制操作更新 ExecuteNotebooksOrgLimit 属性来更改此限制。

计划任务报告的结果数

任务结果会报告并维护 30 次运行。 最近 30 次任务运行之前运行的任何任务都将被永久删除。 可以通过使用 ArcGIS Portal Administrator API 中的更新系统限制操作更新 TaskRunHistoryCount 属性来更改此限制。

任务自动失败

任何连续失败 5 次的任务将自动切换到失败状态并且不再运行。 为确保任务继续运行,任务的所有者必须识别并纠正故障并将任务更改为“活动”状态。 可以通过使用 ArcGIS Portal Administrator API 中的更新系统限制操作更新 FailedRunsDisableTask 属性来更改此限制。

使用 webhook 自动化 notebook

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

注:

通过 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 作为负载类型。

    注:
    如果 Notebook 选项不可用,则表示未将 Notebook Server 配置到门户。 如果 Notebook 可用但是无法选择此项,则表示您没有任何可用于配置 webhook 的 Notebook。 您必须是将用于 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 运行 notebook 时,webhook 的负载信息会自动加入到 notebook 的初始单元格中。 加入后,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

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

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