排查 404 错误

本指南可帮助您排查 Looker 网页或 Looker API 请求中的 404 错误。404 错误通常表示所请求的资源不存在,或者用户无权访问该资源。

调试树

请使用以下决策树开始排查 404 错误:

以下部分将更详细地介绍树中的场景。

排查浏览器中的 404 错误

如果浏览器中的网页上显示 404 错误,请按照本部分中的步骤操作。否则,请查看 API 错误部分。

检查 JavaScript 控制台

首先,请查看浏览器中的 JavaScript 控制台,详细了解该错误。如需在 Google Chrome 中打开 JavaScript 控制台,请按以下步骤操作:

  1. 点击三点状的更多菜单。
  2. 选择更多工具
  3. 点击开发者工具
  4. 点击控制台标签页。

在错误列表中查找 404 错误,然后找到相应的网址。

如果返回 404 的网址不是 Looker 网址,则表示该错误源自外部资源。如果请求网址属于连接到 Looker 的自定义应用,请检查应用的代码和日志,以排查错误。Looker 对外部资源问题的支持有限。

如果该网址是 Looker 网址,请继续下一部分。

检查网址拼写是否有误

检查网址是否存在常见拼写错误。例如:

  • Look 页面的常见拼写错误是 /look/123。正确的语法是 /looks/123
  • 信息中心页面的常见拼写错误是 /dashboard/123。正确的语法是 /dashboards/123

在 LookML 中添加指向探索、Look 或信息中心的链接时,请务必先测试该链接,确保语法正确无误。

如果您发现从 LookML 生成的链接中存在拼写错误,请在 LookML 中修正该拼写错误。如果您发现 Looker 生成的网址(例如,在界面导航元素中)存在拼写错误,请与支持团队联系,请求在产品中更正该网址。

排查 API 中的 404 错误

如果错误显示为对 Looker API 调用的响应,请按照本部分中的步骤操作。

查看 API 端点文档

查找返回 404 错误的 API 端点的文档。例如,create_sso_embed_url 端点的文档页面是创建签名嵌入网址。检查参数,确保您为 API 调用提供了正确的参数。

确保请求动词和路径正确无误。例如,/api/4.0/embed/sso_url 端点应与 POST 动词搭配使用。

您还可以使用 API Explorer 直接在实例上测试 API 端点。

检查是否满足必需的端点条件

某些端点仅在特定条件下可用:

  • 某些 LookML 项目端点(例如 create_projectdeploy_to_productionreset_project_to_production)仅在开发模式下可用。
    • 如有必要,请使用 update_session 端点和请求正文 {"workspace_id": "dev"} 将 API 会话切换到开发模式。
  • reset_project_to_production 端点在共享分支上不可用。
  • 只有在启用高级部署模式时,deploy_ref_to_production 端点才可用。

检查网络钩子设置

如果请求网址是部署 webhook,请检查您的 webhook 设置。

如果您使用 Webhook 部署特定分支或引用,请在项目上启用高级部署模式

如果项目启用了 Webhook 部署 Secret,请确保您在请求中包含该 Secret。

检查所请求的资源是否存在

确认请求中引用的所有资源实际上都存在于您的 Looker 实例中。

检查请求网址和正文中的所有值(例如文件夹 ID 或信息中心 ID)是否都指向有效且现有的资源。例如,如需检查是否存在信息中心,请以管理员用户身份前往 /dashboards/[id]。如果资源缺失或无效,请创建缺失的资源或指定现有资源。

如果资源存在,但您仍然收到 404 错误,请检查资源是否以开发模式存在。如果 Looker 用户拥有 develop 权限,请查看该用户在进入开发模式后是否可以访问相应资源。对于 API 调用,请使用 update_session 端点和请求正文 {"workspace_id": "dev"} 将 API 会话切换到开发模式。

如果用户没有 develop 权限,请尝试将 LookML 项目部署到生产环境,然后检查用户是否可以访问该项目。

检查用户权限和内容访问权限设置

如果资源存在,但用户仍然收到 404 错误,请检查用户的权限和内容访问权限。

模拟用户并检查错误

如果您是管理员,请依次前往管理 > 用户面板,然后模拟(sudo)遇到 404 错误的用户。

  • 如果用户是嵌入式用户,请验证“管理”>“用户”页面上的嵌入式凭据是否与嵌入式登录网址中的 external_user_id 一致。
  • 如果用户正在进行 API 调用,请使用 login_user 端点来模拟用户。

如果您在模拟用户时看到 404 错误,但在以管理员身份查看资源时没有看到此错误,则说明该用户可能没有足够的权限或内容访问设置。

检查所需权限

管理 > 用户面板中检查用户的角色,并查看 Looker 中的权限列表,确保用户在其至少一个角色中拥有必要的权限。例如,如需查看信息中心,用户至少需要拥有 access datasee_lookssee_user_dashboards 权限。如果用户缺少所需权限,请将这些权限添加到分配给该用户的角色中的权限集中。

如果任何必需的权限是特定于模型的,请验证 LookML 模型是否包含在至少一个具有必需权限的用户角色的模型集中。如果未添加,请将该模型添加到分配给用户的某个角色的模型集中。

检查有效的嵌入权限

如果用户是已签名的嵌入用户,请检查所需权限是否为有效的嵌入权限。如果不是,嵌入式用户将无法成功发出请求。例如,嵌入式用户无法获分配 see_lookml 权限。

检查访问权限授予情况

如果内容基于定义了 required_access_grants 的探索,请检查 LookML 项目中的 access_grant 定义。将指定用户的用户属性值修改为访问权限授予中的必需值之一。

检查内容访问权限

如果所请求的资源存储在某个文件夹中,请检查该文件夹的内容访问权限设置。Look、信息中心和 Looker Studio 报告都存储在文件夹中。

最终审核和支持

如果 404 错误仍然存在,请查看本页面上的问题排查步骤。如果您仍然无法解决 404 错误,请与支持团队联系