You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Schedule Functions v2 NOT_FOUND错误:带认证定时任务配置方案

解决Firebase Schedule Functions v2要求认证时与Cloud Scheduler配合的NOT_FOUND问题

问题核心

部署Firebase第二代定时函数后,Cloud Scheduler调用时触发NOT_FOUND错误,根源在于两点:一是默认生成的调度器请求路径可能不匹配Cloud Run驱动的v2函数端点;二是默认的认证方式无法正确通过Cloud Run的权限校验。

解决方案

1. 修正Cloud Scheduler的目标URL

第二代函数基于Cloud Run运行,其完整调用端点是Cloud Run服务URL加上函数名称路径。Firebase CLI自动生成的调度器可能未正确拼接路径,导致404:

  • 打开Cloud Scheduler控制台,找到对应的定时任务
  • 编辑任务,将目标URL修改为 https://<你的Cloud Run服务域名>/<函数名称>
    (比如Cloud Run服务URL是https://my-schedule-func-123.a.run.app,函数名为dailyCleanup,则完整URL为https://my-schedule-func-123.a.run.app/dailyCleanup)

2. 配置OIDC令牌认证(替代默认Auth头)

Cloud Run要求认证时,默认的App Engine服务账户Auth头无法正确生效,需改用OIDC令牌:

  • 在调度器编辑页面的「认证」区域,选择「添加OAuth令牌」
  • 服务账户选择App Engine默认服务账户(或你指定的专用账户)
  • 受众(Audience) 填写你的Cloud Run服务的完整域名(不带函数路径,比如https://my-schedule-func-123.a.run.app)
  • 保存配置后,手动触发任务测试

3. 给服务账户分配正确权限

确保调度器使用的服务账户拥有Cloud Run调用权限:

  • 进入Cloud Run控制台,找到对应的函数服务
  • 切换到「权限」标签页,点击「添加成员」
  • 输入服务账户邮箱(比如[项目ID]@appspot.gserviceaccount.com)
  • 授予「Cloud Run Invoker(roles/run.invoker)」角色,作用域限定为当前Cloud Run服务(避免过度授权)

4. 验证Cloud Run安全设置

确认Cloud Run服务的「安全」配置保持为「要求认证」,同时权限列表中已包含上述服务账户。

验证

修改完成后,手动触发Cloud Scheduler任务,查看Cloud Logging中的函数日志,确认是否成功执行。

内容的提问来源于stack exchange,提问作者Can

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 20:50:05