本指南可帮助您排查 Looker 网页或 Looker API 请求中的 404 错误。404 错误通常表示所请求的资源不存在,或者用户无权访问该资源。
调试树
请使用以下决策树开始排查 404 错误:
以下部分将更详细地介绍树中的场景。
排查浏览器中的 404 错误
如果浏览器中的网页上显示 404 错误,请按照本部分中的步骤操作。否则,请查看 API 错误部分。
检查 JavaScript 控制台
首先,请查看浏览器中的 JavaScript 控制台,详细了解该错误。如需在 Google Chrome 中打开 JavaScript 控制台,请按以下步骤操作:
- 点击三点状的更多菜单。
- 选择更多工具。
- 点击开发者工具。
- 点击控制台标签页。
在错误列表中查找 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_project
、deploy_to_production
和reset_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 data
、see_looks
和 see_user_dashboards
权限。如果用户缺少所需权限,请将这些权限添加到分配给该用户的角色中的权限集中。
如果任何必需的权限是特定于模型的,请验证 LookML 模型是否包含在至少一个具有必需权限的用户角色的模型集中。如果未添加,请将该模型添加到分配给用户的某个角色的模型集中。
检查有效的嵌入权限
如果用户是已签名的嵌入用户,请检查所需权限是否为有效的嵌入权限。如果不是,嵌入式用户将无法成功发出请求。例如,嵌入式用户无法获分配 see_lookml
权限。
检查访问权限授予情况
如果内容基于定义了 required_access_grants
的探索,请检查 LookML 项目中的 access_grant
定义。将指定用户的用户属性值修改为访问权限授予中的必需值之一。
检查内容访问权限
如果所请求的资源存储在某个文件夹中,请检查该文件夹的内容访问权限设置。Look、信息中心和 Looker Studio 报告都存储在文件夹中。
最终审核和支持
如果 404 错误仍然存在,请查看本页面上的问题排查步骤。如果您仍然无法解决 404 错误,请与支持团队联系。