通过G-Drive链接建BigQuery表后,用Cloud Function同步遇403权限错误
解决BigQuery插入时的403权限错误(Globbing File Pattern)
遇到这个403错误,核心是Cloud Function使用的服务账号缺少访问Google Drive文件或BigQuery资源的权限,按以下步骤排查解决:
1. 明确Cloud Function的服务账号
Cloud Function默认使用的是[你的项目ID]@appspot.gserviceaccount.com这个App Engine默认服务账号,先把这个账号记下来。
2. 给服务账号添加必要权限
BigQuery侧权限
- 给服务账号授予目标表所在数据集的BigQuery Data Editor权限,确保能写入数据;如果需要读取源表,再加上BigQuery Data Viewer权限。
- 同时授予BigQuery Job User权限,因为插入操作本质是提交BigQuery作业,需要这个权限来发起作业。
Google Drive侧权限
- 找到你用来创建源表的Google Drive文件/文件夹,直接把服务账号邮箱添加为查看者(不需要编辑权限,查看权限足够)。
- 注意:如果Drive文件在团队盘里,要确保团队盘的权限设置也允许这个服务账号访问。
3. 检查外部表配置与权限同步
- 确认源外部表关联的Drive文件路径没有变动,若用了通配符,要保证匹配的所有文件都已共享给服务账号。
- 权限变更后可能需要等1-2分钟让Google权限系统同步,不要立刻重试。
4. 验证权限是否生效
用服务账号邮箱登录BigQuery控制台,手动执行Cloud Function里的插入语句,如果能成功,说明权限配置到位,再去测试Cloud Function即可。
内容的提问来源于stack exchange,提问作者Govinda Raju
相关产品推荐
相关产品推荐

