Skip To Content

ArcGIS Enterprise 中的 webhook

Webhook 是一种自动向 webhook 接收器或其他应用程序提供事件驱动型信息的 ArcGIS Enterprise 功能。 ArcGIS Enterprise 支持两种类型的 webhook:

  • 组织 webhook - 管理员可以订阅与组织的用户、群组和项目相关的事件触发器。
  • 服务 webhook - 管理员可以订阅用于地理处理和要素服务的 webhook。
    • 地理处理网络 webhook - 管理员可以设置地理处理服务 webhook,以在地理处理服务作业完成时调用。
    • 要素服务 webhook - 管理员可以订阅与组织的要素服务相关的事件触发器。
注:

在此版本中,服务 webhook 是测试版功能。 在测试版中,这些功能可能不完整,因此可能存在已知的性能或质量问题,并且不会得到 Esri 技术支持部门的支持。 服务 webhook 的测试版 API 文档位于 服务 webhook 管理员 API 指南 PDF。 有关 ArcGIS Enterprise 中测试版功能的详细信息,请参阅测试版功能

所有 ArcGIS Enterprise webhook 都遵循相似的进程。 触发 webhook 后,事件信息以 JSON 方案的形式提供,其中包含特定于每个 webhook 类型的相关信息。 每个 webhook 类型都有其可以订阅的特定事件。 例如,可以在发布项目或创建新用户帐户时调用组织 webhook。 当要素图层的方案被修改时,可以触发要素服务 webhook。 地理处理服务 webhook 仅在地理处理服务作业完成时提供事件信息。

随着事件信息的传递,接收器平台可执行特定操作,将事件通知给组织成员和管理员。 根据组织的需要,可以向 Slack 中的指定成员或消息管理员发送电子邮件。

因为 webhook 是在事件发生后提供通知,所以可能比轮询更高效。 与轮询不同的是,webhook 不需要应用程序持续检查系统以查看是否发生了特定事件。

情景:组织 webhook

请考虑一个场景,某个 ArcGIS Enterprise 组织具有一组特定的标准,每个项目在公开共享之前必须符合这些标准。 该组织中的管理员希望创建一个工作流,使他们可以在不符合其标准的项目被共享时实时响应。 他们希望利用 webhook 在项目所有者公开共享其项目时发出通知,并将负载中的事件信息用作脚本的一部分,如果该项目不符合他们的标准,脚本将专门向管理员发送消息,让管理员有机会更新项目或取消与公众共享。

下方列表概述了组织管理员如何利用 webhook 创建此工作流:

  • 组织管理员设置 webhook 接收器,以将传入负载写入本地文本文件。
  • 管理员创建一个解析负载文本文件的 Python 脚本,以提取有关项目和所执行操作的相关信息。 同一脚本可向指定 Slack 频道发送通知,以使管理员能够响应此信息。 如果项目已公开共享但不符合公共标准,则脚本使用 Slack API 向组织管理员发送一条消息,概述缺失的信息或错误信息。
  • 创建脚本后,管理员会创建一个 webhook,该 webhook 将在项目所有者共享其项目时触发。
  • 共享项目时,脚本将解析负载文本文件并确定该项目是公开共享还是在组织内共享。 如果在组织内共享,则不采取额外的操作。 如果项目公开共享,则脚本将基于组织设置的标准对项目进行评级。 如果等级较低(意味着不符合公共标准),管理员将在其 Slack 频道中收到通知,通知提示共享的项目以及哪些项目元数据当前不符合标准。
  • 然后,组织的管理员可以采取以下响应方式:更新元数据以使其符合标准、选择取消共享项目或从 Slack 直接向项目所有者发送消息使其执行所需更改。

在本主题中
  1. 情景:组织 webhook