变量参考分辨率故障

变量库允许你提供一个不同环境不同的值,而不是硬编码一个只在某个工作区里正确的值。 只要 Fabric 接受变量引用,就会先解析该引用给某个值,然后再使用该值。

当 Fabric 无法解析引用时,它不会替换一个值。 它不会直接给出结果,而是报告一个解析状态,指出引用的哪一部分解析失败了。 本文将解释每种状态及其应对方法。

引用是如何被解析的

解析引用是分阶段进行的,任何一个阶段失败都会导致后续阶段停止。 Fabric 执行以下操作:

  1. 阅读推荐信并确认其结构合理。
  2. 找到变量库中的引用名称,并确认你能读取它。
  3. 查找库的当前活动值集。
  4. 在该值集合中找到变量。
  5. 检查变量的值类型是否与引用请求的类型相符。
  6. 如果该值指向另一个项或某个连接,也会一并解析其详细信息。

你看到的状态告诉你哪些阶段失败了,通常这足以在不检查整个链条的情况下找到修复方法。

参考分辨率误差

这些错误意味着引用本身、变量库或变量无法解析。

消息 含义 如何修复此问题
参考格式无效 参考文献格式不正确。 纠正参考语法。
变量库引用缺失 引用中没有给变量库命名。 提供包含图书馆的完整参考文献。
变量库引用存在歧义 多个变量库与引用匹配。 把参考文献具体点,这样才能对应一个库。
不允许使用类型说明 该引用指定了内联类型,但此引用不支持内联类型。 移除内联类型规范。
未找到变量库 图书馆不存在,或者你没有权限阅读。 查查参考资料,也查查你对图书馆的访问权限。
变量库损坏 无法读取该库。 这不是自助式的。 如果继续,请联系支持人员。
未找到活跃值集 库中配置的活跃值集不存在。 设置库中存在的激活值集。
变量定义无效 库中一个或多个变量定义无效。 修正库中的变量定义。
变量覆写无效 一个或多个覆盖值无效。 更正覆盖值。
找不到变量 库解析了,但没有该名称的变量。 验证变量名称。 变量重命名是常见原因。
变量类型不匹配 变量的值类型不是引用要求的类型。 更改请求的类型或变量值。

如果你看到的是笼统的 无法解析引用 消息,而不是上述这些消息中的某一条,则说明该失败无法归因于某个特定阶段。 重试,如果问题依旧,就将其视为服务端错误,而非引用本身的问题。

引用的项目错误

这些错误意味着引用已解析为某个值,但值指向的项或连接无法解析。 参考文本是正确的,所以应修改目标文本,而不是参考文本。

消息 含义 如何修复此问题
未找到参考物品 那个价值所指的物品并不存在。 确认该项仍然存在,并且该值指向正确的项。
无法访问引用项 这个项目存在,但你没有阅读权限。 请求该项目的读取权限。
未找到引用连接或拒绝访问 该连接不存在,或者您无权读取它。 检查连接和你对它的访问权限。
出了点问题 提到的那个问题无法解决,原因也没有具体说明。 再重试。 如果问题持续存在,就当作服务端错误处理。

Considerations

在你遇到这些情况之前,其中有几点值得先了解:

  • 在某些情况下,权限错误和对象缺失会以相同的方式报告。 “找不到变量库”和“找不到被引用的连接或访问被拒绝”这两种提示都可能表示两种情况:对象不存在,或者你无权查看它,因为 Fabric 不会确认你无权读取的对象是否存在。 在断定物体消失之前,先检查一下你的访问权限。
  • 对你来说可以解析的引用,对其他人来说未必也能解析。 解析取决于触发者所具有的权限,因此,在编写时可用的引用,之后在由不同身份运行同一项工作时可能会失效。
  • 重命名变量会破坏对该变量的引用。 引用是按名称显示的,因此重命名时会以“ 未找到变量 ”的形式出现,而不是在重命名时作为警告。