Firebase Functions部署失败报403错误:无法读取us.gcr.io镜像标签
排查解决步骤
1. 校验GCP项目计费关联状态
- Firebase的计费状态和底层绑定的GCP项目计费可能存在同步延迟,直接登录Google Cloud控制台,进入对应项目的「计费」页面,确认:
- 计费账户状态为已启用,无欠费、支付方式失效提示
- 当前项目确实和正常的Blaze计费账户绑定,没有被解绑的记录
2. 修复容器 Registry 权限
- 报错中明确提示访问us.gcr.io镜像仓库被403拒绝,直接在GCP控制台进入「容器 Registry」页面,若提示未启用则先开启服务,然后为当前部署使用的账号添加
roles/storage.admin权限,该权限是部署函数时拉取/清理构建镜像的必要权限
3. 验证部署用服务账号状态
- 检查GCP项目中默认的Cloud Functions服务账号
项目ID@appspot.gserviceaccount.com的状态,确认没有被禁用,同时给该账号添加Cloud Functions Developer和Cloud Build Service Account角色
4. 尝试强制重新部署
- 执行以下命令清除本地缓存后重试部署:
firebase logout firebase login firebase deploy --only functions --force
5. 临时关闭镜像清理步骤
- 如果上述步骤都无效,可以在firebase.json中添加配置跳过构建镜像清理的步骤,规避当前权限报错:
{ "functions": { "source": "functions", "cleanup": false } }
部署成功后再改回默认值即可,不会影响函数正常运行。
6. 提交Google Cloud支持工单
- 如果以上操作都无效,大概率是后台计费同步故障,直接提交GCP支持工单,提供报错中的
gcf-sources-704287304411-us-central1存储桶ID和报错日志,让后台团队手动同步计费状态即可。
内容的提问来源于stack exchange,提问作者Lalit Fauzdar
相关产品推荐
相关产品推荐

