JSONata 映射示例

发现连接器请求节点提供 JSONata 映射功能,您可以使用该功能在消息流中的节点之间映射数据,而无需在流中使用单独的变换节点。 本主题提供了如何在 GitHub Input 节点与 Slack Request 节点之间映射数据的示例。

准备工作

请参阅下列主题:
有关如何配置发现连接器请求节点以使用 JSONata 映射,以及如何使用 JSONata 映射访问消息组件中的树的演示,请参阅以下视频:

关于此任务

完成以下步骤以创建消息流,用于监视 GitHub 存储库中的新问题,然后将消息发送到 Slack,以显示新问题的详细信息。

过程

通过完成以下步骤来配置 GitHub Input 节点:

  1. IBM® App Connect Enterprise 工具包中,创建一个包含 GitHub 输入节点的流程.
  2. 选择流中的 GitHub Input 节点以在编辑器中显示节点属性。
  3. 基本 选项卡上,单击 启动连接器发现
    此时会显示一个面板,您可以在其中指定要在连接器发现期间使用的策略项目名称和保险库文件详细信息。
  4. 指定要在连接器发现期间使用的策略项目和保险库文件的详细信息:
    1. 策略项目 字段中,指定用于存储连接器发现期间创建的策略的策略项目。
      也可以通过单击新建并指定新策略项目的名称来创建新的策略项目。 然后点击完成
    2. 指定要在连接器发现期间使用的保险库文件。 缺省情况下,连接器发现期间使用的凭证存储在 外部目录保险库中,这是可供任何集成服务器使用的 App Connect Enterprise 保险库文件。 或者,您可以将凭证存储在集成服务器保险库文件中,该保险库文件是在集成服务器的工作目录中创建的,并且只能由该特定集成服务器使用。
      要指定用于存储凭证的保险库文件,请完成下列其中一个主题的 使用连接器发现向导 部分中的步骤:
    3. 保险库密钥 字段中,输入用于访问保险库中存储的凭证的保险库密钥。 保险库密钥的长度必须至少为 8 个字符。
    4. 可选: 缺省情况下,指定的保险库文件位置和保险库文件密钥将另存为 Toolkit 中的首选项,以便在您启动 "连接器发现" 时预设这些值。 如果您不希望保存这些首选项,请取消选中保存在保险库文件首选项中
  5. 单击 启动连接器发现 以启动 GitHub 连接器的 "连接器发现" 向导。
    此时将显示 " 连接器发现 " 窗口。 如果现有 GitHub 连接 (帐户) 可用,那么将显示这些连接的列表。 如果没有现有连接,那么 GitHub 连接器的状态将显示为 Not connected
    • 如果一个或多个 GitHub 连接可用,请完成以下步骤:
      1. 选择要使用的连接。
      2. 单击 配置更多事件
      3. 单击 问题 > 新问题
      4. 单击连接
    • 如果没有现有连接,请完成以下步骤:
      1. 单击 配置更多事件
      2. 单击 Issues > New issues
      3. 单击连接
        此时将显示一个窗口,您可以在该窗口中指定连接详细信息。 输入以下信息:
        • 应用程序类型: 从下拉菜单中选择 GitHub Enterprise ServerGitHub Cloud
        • 授权方法: 从下拉菜单中选择 BASICBASIC OAUTH
        • 访问令牌: 输入个人访问令牌以访问 GitHub API。 从 GitHub 帐户 "设置" 页面生成个人访问令牌。

        有关识别这些连接详细信息的更多信息,请参阅 如何使用 IBM App Connect 和 GitHub

      4. 用于连接 GitHub 的凭证存储在保管库中,其他连接细节保存在 GitHub 策略中。
  6. 选择所需的组织和存储库。
  7. 选择相应的时区,然后指定希望节点检查新问题的频率。 例如,选择 1 以配置节点,以便每分钟轮询一次新问题。
  8. 单击保存
    您在向导中设置的属性值将返回到 IBM App Connect Enterprise Toolkit中的 GitHub Input 节点。
  9. 完成发现并保存属性值后,通过单击窗口右上角的 X 或按 Alt+F4来退出 "连接器发现" 向导。

通过完成以下步骤,在 IBM App Connect Enterprise Toolkit 中配置 Slack 请求 节点:

  1. 在流程中添加 Slack 请求节点 并将其连接到 GitHub 输入节点 节点:
    此图显示了包含 GitHub 输入节点和 Slack 请求节点的流。
  2. 选择流中的 Slack 请求 节点以在编辑器中显示节点属性。
  3. 打开 Slack 请求 节点上的 请求 选项卡。
    此选项卡包含 映射输入 表,用于指定要发送到连接器的内容。 您可以指定要使用的消息树部分,例如输入主体部分或本地环境部分。 例如,您可能希望获取在 GitHub中创建的新问题的问题号和标题。
  4. 要创建映射输入条目,请单击 添加。 将显示 " 添加映射输入条目 " 对话框,其中预先填充了节点的名称以及来自先前节点的模式 (如果存在)。
  5. 单击 确定 以接受对话框中显示的条目。
    或者,如果要从其他位置访问数据,可以选择所需的模式和数据位置。
  6. 单击 启动连接器发现
    此时会显示一个面板,您可以在其中指定要在连接器发现期间使用的策略项目名称和保险库文件详细信息。 指定策略项目和保险库文件的详细信息,如步骤 4中所述。
  7. 单击 启动连接器发现 以启动 Slack 连接器的 "连接器发现" 向导。
    此时将显示 " 连接器发现 " 窗口。
  8. 从已连接帐户的列表中选择要使用的 Slack 连接。
    如果没有现有连接,那么 Slack 连接器的状态将显示为 Not connected,您将需要创建与 Slack的新连接,类似于在步骤 5中为 GitHub 创建的连接。 有关如何创建到 Slack 的连接的信息,请参阅 通过 IBM App Connect Enterprise 使用 Slack。
  9. 单击 信息 > 发送信息 配置节点,使其在触发时向 Slack 发送消息。
  10. 控制 部分控制如何填充目标应用程序 (在本例中为 Slack) 中的字段。 将此选项设置为 定义以下映射的缺省设置,以指定要在 "连接器发现" 向导中定义映射。 使用 填充 Slack 中的目标字段 部分中的字段来定义映射。

    或者,您可以选择 使用未更改的输入消息 以获取由流中较早的变换节点 (例如 映射 节点, ESQL 计算 节点或 JavaCompute 节点) 构造的输入消息。

  11. 选择 目标类型。 例如, Channel
  12. 要在何处发布消息 字段中,选择通道的名称。
  13. 文本 字段中,定义要发送到 Slack 的消息的内容。 例如,要发送一条关于 GitHub 中创建的新期刊的信息,其中包含 "新期刊 "字样,后面跟期刊号和标题,请完成以下步骤:
    1. 文本 字段中,输入 New issue
    2. 单击 文本字段右侧的映射图标。 使用 InputRoot 和 InputLocalEnvironment, 等树显示可用映射列表,该列表还显示了自定义响应模式,该模式描述了您之前配置的 GitHub 输入 节点(映射输入 GitHub_node_name)产生的消息。
    3. 通过单击向下箭头,展开 GitHub Input 节点创建的响应模式中定义的属性列表。
    4. 单击 问题编号,然后再次打开列表并单击 标题,然后键入您希望包含在将发送至 Slack的消息中的文本以及问题编号和标题(例如 "已在 GitHub"中创建)
  14. 在 "连接器发现" 向导中指定完属性后,单击 保存
    您在向导中设置的属性值将返回到消息流编辑器中的 Slack 请求 节点。
  15. 在完成发现并保存属性值后,通过单击窗口右上角的 X 来退出"连接器发现"向导。
  16. 检查 Slack 请求 节点上的属性设置是否正确,然后保存消息流。
  17. 部署消息流。

结果

当在 GitHub 中创建新问题时,系统会向 Slack 发送一条消息:"在 GitHub 中创建了新问题 <issue-number> <issue-title> "。