创建 webhook

作为组织管理员,您可以为 ArcGIS Enterprise 部署配置 webhook,以在发生特定事件时收到通知。 以下部分概述了如何配置组织和服务 webhook。

创建 webhook 的先决条件

创建 webhook 之前,请考虑以下事项:

  • 要使用组织 webhook,您的组织必须使用 ArcGIS Enterprise 10.7 或更高版本。 要使用服务 webhook,您的组织必须使用 ArcGIS Enterprise 11.0 或更高版本。
  • 要创建和管理组织 webhook,您必须已被分配组织 webhook 权限或被分配默认管理员角色。
  • 要创建和管理地理处理服务 webhook,您必须已被分配地理处理权限或被分配默认管理员角色或发布者角色。
  • 要创建和管理要素服务 webhook,您必须已被分配要素图层权限或被分配默认管理员角色或发布者角色。
  • Webhook 接收器必须配置为通过 HTTPS 进行通信。 此处提供多个支持用作接收器的选项:例如第三方 Web 服务接收器(Microsoft Power AutomateZapier 和 IFFT)和自定义 Web 服务。 有关如何创建自定义 Web 服务的示例或使用第三方接收器的入门指南,请参阅 Webhook 资料档案库
  • 要为托管要素服务配置 webhook,服务必须包含编辑功能,并且在不使用同步功能的情况下启用了更改追踪。
  • 要为非托管要素服务配置 webhook,该服务所引用的企业级地理数据库数据必须满足更改追踪的要求并遵循以下模式之一:
    • 它是一种已启用存档并且具有全局 ID 的非版本化要素服务。
    • 它是一种未启用版本管理功能的分支版本化要素服务,其中编辑内容直接应用于默认版本的要素。
    • 它是一种已启用版本管理功能的分支版本化要素服务。 启用版本管理功能后,服务可以创建具有 FeaturesPosted 事件触发器的 webhook,每当对服务执行 post 操作时,该事件触发器都会调用 webhook。
    注:

    ArcGIS Enterprise 11.3 添加了对分支版本化要素服务的支持。

  • 要为地理处理服务配置 webhook,服务必须为异步服务。

配置组织 webhook

您可通过组织 webhook 订阅至与 ArcGIS Enterprise 门户项目、群组和用户关联的事件的触发器。

创建组织 webhook

要通过 ArcGIS Enterprise 门户网站创建组织 webhook,请按照以下步骤操作:

  1. 确认您以默认管理员身份登录或具有组织 webhook 权限的自定义角色成员身份登录。
  2. 浏览至组织 > 设置 > Webhook
  3. 组织 webhook 下,单击创建 webhook
  4. 创建 webhook 窗口中,执行以下操作:
    1. 名称文本框中,为 webhook 提供唯一名称。
    2. 类型下拉菜单中选择一种 webhook 类型。
      • 选择全部可订阅所有受支持的事件触发器。 在每个事件发生时,您将收到通知。
      • 选择项目用户群组角色允许您手动定义要订阅的事件触发器。
    3. 如果选择全部以外的 webhook 类型,则会出现一个与所选 webhook 类型相关的附加下拉菜单。 例如,如果您为 webhook 类型选择了项目,则会出现项目下拉菜单,允许您选择 webhook 将监控的特定项目。
    4. 事件下拉菜单中选择事件触发器。 例如,如果您希望在发布特定项目时调用 webhook,请选择 /items/<项目 ID>/publish
    5. Webhook URL 文本框中提供 webhook 接收器的负载 URL。 示例负载 URL 如下所示:
      https://app.logic.azure.com:443/workflows/b688528a36e246279dc050f936e5ebd4/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=nHP-LBo9x-nSgMi11DSDuwRIUiJr-8yKGCy7OYaT_ow
      
    6. 或者,在密钥(可选) 文本框中为 webhook 设置一个密钥值。 密钥值将用于生成包含在 webhook 有效负载标头中的签名。 webhook 接收器可以使用此签名来确定是否应信任该消息。
  5. 单击创建 webhook

为组织 webhook 配置高级参数

应用于组织的 webhook 的高级设置允许您进一步自定义 webhook 的性能,例如指定传送尝试的次数、通知时间和传送尝试之间的时间。

要通过 ArcGIS Enterprise 门户网站设置高级属性,请执行以下操作:

  1. 以默认管理员身份登录或具有组织 webhook 权限的自定义角色成员身份登录您的组织。
  2. 浏览至组织 > 设置 > Webhook
  3. 组织 webhook 下,单击高级 webhook 设置
  4. 高级 webhook 设置窗口中,执行以下操作:
    1. 设置传送尝试次数的值。

      此值指定尝试传送 webhook 负载的次数。 默认情况下,ArcGIS Enterprise 门户将尝试传送负载三次。 尝试次数的值必须是 0 到 5 之间的整数。

    2. 设置通知超时的值。

      此值以秒为单位指定时间长度,ArcGIS Enterprise 门户将在此时间内等待从接收器接收响应。 默认情况下,ArcGIS Enterprise 门户将等待 10 秒。 ArcGIS Enterprise 门户将等待的秒数值必须是 0 到 60 秒之内的整数。

    3. 设置通知历时的值。

      此值指定每次负载传送尝试之间的时间量(以秒为单位)。 默认情况下,如果上次尝试失败,ArcGIS Enterprise 门户将在 5 秒后尝试传送另一个负载,直到达到传送尝试次数中指定的尝试次数为止。

  5. 配置完上述设置后,单击保存

    更新的属性将应用于每个已配置的组织 webhook。

配置服务 Webhook

服务 webhook 允许您订阅与组织的要素服务相关联的事件的触发器,或者在完成地理处理服务作业时订阅触发器。

创建服务 webhook

要为地理处理服务或要素服务创建 webhook,请执行以下步骤:

  1. 以默认管理员身份或具有创建和管理服务 webhook 的管理权限的自定义角色成员的身份登录到组织。

    注:
    已分配发布者角色的成员将无法在 ArcGIS Enterprise 门户站点中创建或管理服务 webhook,并且需要使用管理 API 的工作流

  2. 浏览至组织 > 设置 > Webhook
  3. 服务 webhook 下,单击创建 webhook
  4. 创建 webhook 窗口中,执行以下操作:
    1. 名称文本框中,为 webhook 提供唯一名称。
    2. 服务下拉菜单中选择服务。

      注:

      选择地理处理服务可将事件设置为服务已完成。 选择要素服务将启用事件下拉菜单。

    3. 如果选择要素服务 webhook,请从事件下拉菜单中选择事件触发器。 例如,如果您希望在编辑内容包含新附件时调用 webhook,请选择 AttachmentsCreated
    4. Webhook URL 文本框中提供 webhook 接收器的负载 URL。 示例负载 URL 如下所示:
      https://app.logic.azure.com:443/workflows/b688528a36e246279dc050f936e5ebd4/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=nHP-LBo9x-nSgMi11DSDuwRIUiJr-8yKGCy7OYaT_ow
      
    5. 或者,在密钥(可选) 文本框中为 webhook 设置一个密钥值。 密钥值将用于生成包含在 webhook 有效负载标头中的签名。 webhook 接收器可以使用此签名来确定是否应信任该消息。
  5. 单击创建 webhook

为服务 webhook 配置高级参数

应用于服务 webhook 的高级设置允许您进一步自定义 webhook 的性能,例如指定传送尝试的次数、通知时间和传送尝试之间的时间。

要通过 ArcGIS Enterprise 门户网站设置高级属性,请执行以下操作:

  1. 以默认管理员身份或具有创建和管理服务 webhook 的管理权限的自定义角色成员的身份登录到组织。

    注:
    已分配发布者角色的成员将无法在 ArcGIS Enterprise 门户站点中创建或管理服务 webhook,并且需要使用管理 API 的工作流

  2. 浏览至组织 > 设置 > Webhook
  3. 服务 webhook 下,单击高级 webhook 设置
  4. 高级 webhook 设置窗口中,执行以下操作:
    1. 设置传送尝试次数的值。

      此值指定尝试传送 webhook 负载的次数。 默认情况下,系统将尝试传送负载三次。 尝试次数的值必须是 0 到 5 之间的整数。

    2. 设置通知超时的值。

      此值以秒为单位指定时间长度,系统将在此时间内等待从接收器接收响应。 默认情况下,系统将等待 10 秒。 该值必须为介于 0 和 60 秒之间的整数。

    3. 设置通知历时的值。

      此值指定每次负载传送尝试之间的时间量(以秒为单位)。 默认情况下,如果上次尝试失败,则系统将在 5 秒后尝试传送另一个负载,直到达到传送尝试次数中指定的尝试次数为止。

    4. 设置过去天数的值。

      此值用于指定在停用 webhook 之前,可能出现特定失败次数的天数。 默认情况下,系统将接受 5 天内的特定失败次数(在最大失败次数中指定)。 该值必须为介于 1 和 30 之间的整数。

    5. 设置最大失败次数的值。

      此值用于指定在停用 webhook 之前,特定天数内可能发生的失败次数。 默认情况下,系统将接受在停用 Webhook 之前的特定天数内(在过去天数中指定)发生 5 次失败。 该值必须为介于 1 和 30 之间的整数。

  5. 配置完上述设置后,单击保存

    已更新的属性将应用于每个已配置的服务 webhook。