旧版 URL 别名
此页面介绍旧版 URL 别名:它们是什么,它们的来源以及如何禁用它们。
Kibana 8.0 中转换了许多已保存的对象类型,以便它们最终可以在空间之间共享。在 8.0 之前,您可以在两个不同的空间中拥有两个具有相同类型和相同 ID 的对象。此转换的一部分是确保给定类型的*所有*对象 ID 在*所有空间中都具有全局唯一性*。
Kibana 为每个需要新 ID 的已保存对象创建一个名为旧版 URL 别名的特殊实体。此旧版 URL 别名允许 Kibana 保留这些对象的任何深度链接 URL。
在以下两种情况下会生成旧版 URL 别名。
- 在迁移过程中,当对象的命名空间类型从单命名空间类型转换为多命名空间类型时。如果对象位于非默认空间中,则会获得新 ID,并生成旧版 URL 别名。
- 在复制/导入已保存对象期间,当任何对象需要新 ID*且
compatibilityMode选项已启用*时(有关更多信息,请参阅将已保存对象复制到空间 API 和PR #149021)。
请考虑以下场景
您拥有 Kibana 7.16,并创建一个新的仪表板。此仪表板的 ID 是“123”。您创建一个名为“Bill’s space”的新空间,并将您的仪表板复制到另一个空间。现在您有两个不同的仪表板,可以从以下 URL 访问:
- 默认空间:
https://:5601/app/dashboards#/view/123 - Bill’s space:
https://:5601/s/bills-space/app/dashboards#/view/123
您经常使用这两个仪表板,因此您将它们添加到 Web 浏览器的书签中。一段时间后,您决定升级到 Kibana 8.0。当这两个仪表板经过转换过程时,“Bill’s space”中的仪表板的 ID 将更改为“456”。访问该仪表板的 URL 会有所不同——不过不用担心,该仪表板有一个旧版 URL 别名。
如果您使用书签通过旧 URL 访问该仪表板,Kibana 会检测到您正在使用旧版 URL,并找到新的对象 ID。如果您导航到https://:5601/s/bills-space/app/dashboards#/view/123,您将看到一条消息,指示仪表板有一个新 URL,并且您将被自动重定向到https://:5601/s/bills-space/app/dashboards#/view/456。
您在默认空间中有一个数据视图和两个仪表板,但您也希望在另一个空间中使用它们。其中一个仪表板包含一个 Markdown 可视化,其中有一个指向另一个仪表板的链接——所谓的弱链接。这是一个弱链接,因为引用的对象的 ID 不会添加到对象的引用数组中,因此对象之间没有明确的关系。
如果您使用将已保存对象复制到空间 API 在*未将 compatibilityMode 选项设置为 true* 的情况下,在另一个空间中创建这些资产的新副本,则 Markdown 链接将中断。在目标空间中创建的复制对象会获得一个新 ID,并且 Markdown 可视化中的弱链接将指向原始空间中源对象的 ID。
通过在使用复制 API 时将 compatibilityMode 设置为 true,将为需要新 ID 的任何对象生成旧版别名。这允许解析指向第二个仪表板的弱链接。虽然找不到具有弱链接 ID 的仪表板,但将生成一个具有此源 ID 的旧版别名,并且它将包含新本地复制的仪表板的目标 ID。
旧版 URL 别名旨在完全透明,但有时会出现这种情况可能导致错误。例如,您可能有一个仪表板,并且其中一个可视化加载失败,将您引导至此页面。如果您在这种情况下遇到错误,您可能希望完全禁用旧版 URL 别名。这会使已保存对象保持不变,您不会丢失任何数据——您只是无法使用旧 URL 访问该已保存对象。
要禁用旧版 URL 别名,您需要三条信息:targetSpace、targetType 和 sourceId。然后使用_disable_legacy_url_aliases API 来禁用有问题的旧版 URL 别名。