使用 AI 排查执行失败日志

Application Integration 提供 AI 赋能的故障排查功能,可用于排查执行失败问题。此功能使用 Google Gemini 分析执行日志、确定根本原因并生成可据以采取行动的建议。您可以在 Application Integration 中的执行日志页面中访问此功能。

主要优势

借助 Gemini AI 赋能的问题排查功能,您可以:

  • 清晰了解复杂的错误消息。AI 可将技术日志转化为清晰明了、富有实用价值的分析洞见。
  • 获取根据您的独特集成逻辑和遇到的具体错误量身定制的精确问题解决步骤。
  • 通过确定修复的根本原因和补救措施来缩短调试时间。

准备工作

您必须先满足以下条件,然后才能使用 Gemini AI 故障排查功能:

启用 AI 辅助问题排查功能

如需使用 Gemini AI 排查执行失败问题,请为部署集成的特定 Google Cloud 区域启用 AI 功能。

为新区域启用 AI

如需在 Application Integration 中为新区域启用 AI,请执行以下步骤:

  1. 在 Google Cloud 控制台中,前往 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击区域。系统会显示区域页面,其中列出了项目中预配的所有区域。
  3. 点击预配新区域
  4. 展开高级设置
  5. 点击 AI 功能下的启用 AI 功能切换开关。

在现有区域中启用 AI

如需在 Application Integration 中为现有区域启用 AI,请执行以下步骤:

  1. 在 Google Cloud 控制台中,前往 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击区域。系统会显示区域页面,其中列出了项目中预配的所有区域。
  3. 对于要修改的现有区域,请在操作列中点击 区域操作,然后选择修改

    系统会显示修改区域窗格。

  4. 展开高级设置部分。
  5. 点击 AI 功能下的启用 AI 功能切换开关。

使用 AI 排查执行失败问题

如需使用 Gemini AI 排查失败的执行日志,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击日志

    系统会显示执行日志页面,其中列出了为默认区域中的集成生成的执行日志。

  3. 执行日志页面上,找到显示错误 失败状态的条目。
  4. 点击失败的日志条目旁边的 chat_spark 图标。
    • 或者,展开相应行,然后点击说明此日志条目

    这会打开错误摘要页面,其中显示了 Gemini 生成的错误摘要,包括以下部分:

    • 错误消息:显示技术错误说明,并指出代码中发生错误的位置。
    • 根本原因:说明错误发生的原因。
    • 详细分析(展开此部分)提供有关错误影响、涉及的具体代码区域以及如何修复错误的更多详细信息。
    • 修复错误的步骤:提供针对已确定的根本原因的补救说明。
  5. 查看错误摘要并了解问题后,点击关闭返回到执行日志页面。

使用 AI 建议解决问题

查看错误摘要后,请完成以下步骤以解决问题:

  1. 遵循建议:按照错误摘要页面中解决错误的步骤部分中的建议,实施推荐的步骤,并对集成逻辑或连接器配置进行所有必要的更改。
  2. 测试并重新发布:完成修改后,测试并重新发布更新后的集成,以确认问题已完全解决。

错误摘要示例

以下示例描述了 AI 生成的执行失败错误摘要:

  • 错误消息
    RUNTIME ERROR: Index 0 out of bounds, not within [0, 0)
    template:16:2-59 function
    template:17:40-78 function
    :259:50-62 function
    :259:55-61 thunk from>
    template:20:39-40 thunk from>
    :1613:20-21 thunk from>
    :32:25-26 thunk from>
    :32:16-27 function
    :1613:8-22 function
  • 根本原因:错误 Index 0 out of bounds, not within [0, 0) 表示尝试访问空数组的第一个元素(索引 0)。此问题发生在代码的第 16 行,具体来说,是在脚本的以下部分:
    • getMergedObject(orderId) 函数:如果无法在 ordersSalesforce 中找到匹配的订单,此函数会返回一个空数组 []
    • local orders = std.map(...); 行:此行在尝试访问 getMergedObject(orderId) 返回的结果的第一个元素时会导致 index 0 out of bounds 错误,因为结果是一个空数组 []
  • 详细分析
    • getMergedObject(orderId) 函数:此函数会在 ordersSalesforce 数组中查找匹配的顺序。如果未找到匹配项,则返回空数组 []。如果 ordersSalesforce 数组中未找到 orderId,则这是预期行为。
    • local orders = std.map (...); 行:此行使用 std.map 函数处理数据。不过,它直接尝试访问 getMergedObject(orderId) 返回的数组的第一个元素,而未检查该数组是否为空。如果数组为空,则会导致 index 0 out of bounds 错误。
      修复此错误的步骤
      • 前往 Salesforce 连接中的身份验证部分。
      • 验证访问令牌和 Secret 版本。
      • 为访问令牌和 Secret 版本提供有效值。
      • 测试并重新发布集成以应用更改。