使用 Webhook 创建作业

Webhook 允许应用程序在发生特定操作或事件时将信息发送至其他应用程序和服务。 ArcGIS Workflow Manager 充当 Webhook 有效负载的接收器,用于处理传入 Webhook 的信息以基于指定作业模板自动创建作业。 还可以将传入 webhook 的有效负载另存为文件并将其附加至作业,然后配置可在整个作业中使用的自定义输出值。

从 11.2 开始,所有传入 webhook 均具有标头安全要求。 要允许 Workflow Manager 使用无标头安全性的 webhook,您必须在 Workflow Manager 配置文件中将 allowUnsecureWebhooks 属性设置为 true。

警告:

在将工作流项目升级为最新版本之前,现有 webhook 将不起作用。

创建传入 webhook

按照以下步骤创建传入 webhook:

  1. 访问 Workflow Manager web 应用程序。
  2. 单击设计选项卡。

    设计页面随即出现。

    注:

    如果您没有足够的权限,则设计选项卡将不可用。

  3. 单击作业模板 Job Templates。

    作业模板面板随即显示。

  4. 选择要为其创建传入 webhook 的作业模板。

    面板中将显示作业模板。

  5. 单击自动操作选项卡。

    如果您没有 ArcGIS Workflow Manager Server Advanced 角色的许可或足够的权限,则无法配置自动操作。

  6. 在 Webhook 作业创建部分中,单击添加 Webhook。

    随即显示创建 Webhook 对话框。

  7. 在名称文本框中,提供 webhook 名称。
  8. 在用户名和密码文本框中,提供用户名和密码,以创建传入 webhook 的凭据。

    可以在用户名和密码文本框中使用 ArcGIS Arcade 表达式,以使用加密用户定义设置动态填充这些值。

    警告:

    未加密在用户名和密码文本框中提供的信息。 建议创建加密用户定义设置以安全存储 webhook 凭据。

    提示:

    单击此输入支持 Arcade 表达式按钮 This input supports Arcade expressions,然后选择 ArcGIS Arcade 表达式将其添加至其关联文本框。

  9. (可选)打开回退用户名和密码,然后在回退用户名和回退密码文本框中提供凭据备份集。

    可以在用户名和密码文本框中使用 ArcGIS Arcade 表达式,以使用加密用户定义设置动态填充这些值。

    警告:

    未加密在回退用户名和回退密码文本框中提供的信息。 建议创建加密用户定义设置以安全存储 webhook 凭据。

  10. 在标头安全部分中选择身份验证方法:
    注:

    传入要素服务 webhook 必须使用 ArcGIS Webhook 方法进行身份验证。

    • 简单 - 通过匹配定义的标头和密钥验证传入请求。

      在标头名称和值文本框中提供身份验证值。

    • ArcGIS Webhook - 通过匹配从共享密钥生成的哈希函数验证传入请求。

      在密钥文本框中提供值。

  11. (可选)单击有效负载选项卡,然后打开附加响应将传入 webhook 有效负载另存为文件并将其附加至作业。
  12. (可选)执行以下步骤配置附件名称和存储附件的文件夹:
    1. 在文件夹名称文本框中提供将存储附件的文件夹的名称。

      文件夹名称不能包含文件系统路径或特殊字符。 如果未提供文件夹名称,则将自动创建名为“常规”的文件夹。

      注:

      文件夹包含在工作流项目中,并且不是文件系统路径。

    2. 选择以下附件名称选项之一:
      • 自动生成 - 使用以下语法自动对附件进行命名:<StepName>_<RunDate>_<RunTime>
      • 自定义 - 允许提供自定义附件名称
  13. (可选)按照以下步骤解析传入 webhook 的有效负载并配置自定义输出值:
    1. 如果传入 webhook 的源是要素服务 webhook,则可以选择性地选中提取更改以在输出值中使用提取的更改。
    2. 在输出值部分中单击测试模式开关按钮。
    3. 在示例响应文本框中,粘贴传入 webhook 有效负载的示例。

      采用 JSON 格式的示例有效负载:

      {"spatialReference": {
        "wkid": 4326,
        "latestWkid": 4326
      },
      "location": [
        {
          "name": "380 New York Street",
          "extent": {
            "xmin": -117.196701,
            "ymin": 34.055489
          }
        }
      ]}
    4. 单击添加输出和路径。
    5. 在输出值文本框中提供输出值的名称。

      这是用于获取自定义输出值的值名称。

    6. 在提取路径文本框中为要存储的值提供采用点表示法或括号表示法的 JSONPath 表达式。

      采用点表示法的示例 JSONPath:

      $location.0.name

      采用括号表示法的示例 JSONPath:

      $['location'][0]['name']

      值将在示例结果列中显示。

    7. 可以选择重复子步骤 c 至 e 以添加更多自定义输出值。
  14. 单击保存。

    Webhook 作业创建部分中将显示传入 webhook。

  15. 单击保存保存作业模板。

    将向 webhook 分配 ID 和 URL。

  16. 将光标悬停在 webhook 上,单击复制 URL Copy Step ID 将传入 webhook URL 复制到剪贴板,然后对其进行配置以用于应用程序。

编辑传入 webhook

按照以下步骤编辑传入 webhook:

  1. 访问 Workflow Manager web 应用程序。
  2. 单击设计选项卡。

    设计页面随即出现。

    注:

    如果您没有足够的权限,则设计选项卡将不可用。

  3. 单击作业模板 Job Templates。

    作业模板面板随即显示。

  4. 选择包含要编辑的传入 webhook 的作业模板。

    面板中将显示作业模板。

  5. 单击自动操作选项卡。

    如果您没有 ArcGIS Workflow Manager Server Advanced 角色的许可或足够的权限,则无法配置自动操作。

  6. 在 Webhook 作业创建部分中,将光标悬停在要编辑的传入 webhook 上,然后单击编辑。

    随即显示创建 Webhook 对话框。

  7. 根据需要更新传入 webhook 设置。
  8. 单击保存保存更改。
  9. 单击保存保存作业模板。

    随即更新传入 webhook。

删除传入 webhook

删除传入 webhook 为永久性操作,无法撤消。 按照以下步骤删除传入 webhook:

  1. 访问 Workflow Manager web 应用程序。
  2. 单击设计选项卡。

    设计页面随即出现。

    注:

    如果您没有足够的权限,则设计选项卡将不可用。

  3. 单击作业模板 Job Templates。

    作业模板面板随即显示。

  4. 选择包含要删除的传入 webhook 的作业模板。

    面板中将显示作业模板。

  5. 单击自动操作选项卡。

    如果您没有 ArcGIS Workflow Manager Server Advanced 角色的许可或足够的权限,则无法配置自动操作。

  6. 在 Webhook 作业创建部分中,将光标悬停在要删除的传入 webhook 上,然后单击删除 Webhook Delete Webhook。
    警告:

    已删除的传入 webhook 无法恢复。

  7. 单击保存保存作业模板。

    随即删除 webhook。

相关主题