Skip To Content

使用 ArcGIS Notebooks 自动化工作流

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

注:

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

计划笔记本任务

自 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 后,会向 Notebook Server 发出 HTTP 请求以运行所选笔记本,无需任何用户交互。

注:

通过 webhook 同时执行的笔记本任务数量受 Notebook Server 中的 maxExecuteNotebookContainersPerNode 系统属性限制。

创建 webhook

只能通过 ArcGIS Portal Directory(共享 API)对 Webhook 进行管理。 使用以下步骤创建 webhook:

  1. 浏览至 ArcGIS Portal Directory。
    https://machine.domain.com/webadaptor/sharing/rest
  2. 以管理员身份登录。

    Webhook 只能由管理员创建和管理。

    管理员用户页面随即显示。

  3. 单击组织 ID 超链接,或根据以下表单提出请求,以转到门户自助资源页面。
    https://machine.domain.com/webadaptor/sharing/rest/portals/<orgID>
  4. 滚动至页面底部,直至子资源下的 Webhooks
    https://machine.domain/com/webadaptor/sharing/rest/portals/<orgID>/webhooks
  5. 支持的操作下,选择创建 webhook
  6. 指定 webhook 的参数。 要创建自动化笔记本的 webhook,请提供以下信息:

    参数详细说明
    name

    (必填)

    指定 webhook 的名称。

    示例:name=mynotebook_webhook

    url

    (可选)

    为笔记本配置 webhook 时,负载 URL 不是必填项,因为系统会自动进行派生。 您并非必须提供此信息。

    config

    (必填)

    设置 webhook 的配置属性。

    注:

    您必须是管理员并且是要通过 webhook 执行的笔记本项目的所有者。

    示例:

    {
      "deactivationPolicy": {
        "numberOfFailures": 5,
        "daysInPast": 5
      },
      "properties": {
        "federatedServer": {
          "itemId": "<Notebook item id to be executed>",
          "tokenTypeToSend": "owner",
          "tokenExpirationTimeMinutes": 10
        }
      }
    }

    events

    (可选)

    将触发 webhook 的事件的 URI 表示。 如果将 changes 指定为 manual,则此参数是必填项。 有关详细信息,请参阅支持的触发事件部分。 有关触发事件的其他示例,请参阅 REST API 文档中创建 webhook 的触发事件部分。

    示例:

    events=/items,/users

    有关这些参数的详细信息,请参阅 webhook REST API 文档

    您的 webhook 现已在 webhook 下列出:https://machine.domain.com/webadaptor/sharing/rest/portals/<orgID>/webhooks

有关使用 webhook 自动化的详细信息,请参阅创建和管理 webhook 帮助主题。

管理 webhook

您可以根据以下表单提出请求,从而通过 ArcGIS Portal Directory 来管理您的 webhook:

Webhook 管理所支持的操作如下:

  • Update Webhook - 更新您的 webhook 参数。 您可以更新指定 webhook 的名称、负载 URL、配置或触发事件。
  • Delete Webhook - 从门户中删除 webhook。
  • Deactivate WebhookActivate Webhook - 禁用 webhook,即在触发 webhook 时停止传送负载。 当 webhook 处于禁用状态时,可通过“激活 Webhook”操作恢复负载的传送。

Notification Status 页面用于显示与特定 webhook 关联的触发事件的相关信息。 您可以使用此表来监控您的 webhook 以及所传送负载的详细信息,例如触发 webhook 的时间,以及从负载 URL 和所传送负载接收到的响应。 指示负载传送成功的记录会于一天后删除。 指示传送尝试失败的记录会存储七天。

有关这些操作的示例,请参阅 Webhooks API

有关使用 webhook 自动化的详细信息,请参阅创建和管理 webhook 帮助主题。

执行笔记本 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 系统属性来调整限制。