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

在第二代Cloud Function中调用DocumentAI OCR任务遇403权限问题求助

第二代Cloud Function调用DocumentAI报403权限错误的排查与解决

遇到的错误信息:

raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.PermissionDenied: 403 Your application is authenticating by using local Application Default Credentials. The documentai.googleapis.com API requires a quota project, which is not set by default. To learn how to set your quota project... [reason: "SERVICE_DISABLED"
domain: "googleapis.com"
metadata {
  key: "service"
  value: "documentai.googleapis.com"
}
metadata {
  key: "consumer"

可能的原因及解决步骤

1. Cloud Function默认服务账号缺乏DocumentAI权限

第二代Cloud Function默认使用[项目ID]@appspot.gserviceaccount.com作为运行服务账号,该账号可能未被授予调用DocumentAI的必要权限:

  • 进入Google Cloud控制台的IAM页面,定位到该服务账号
  • 为其添加roles/documentai.apiUser(基础调用权限)或roles/documentai.editor(全操作权限)角色
  • 若批量处理的PDF存储在GCS中,需同时为该账号添加roles/storage.objectViewer权限,确保能读取源文件

2. Cloud Function所在项目未启用DocumentAI API

即便配额项目已启用API,Cloud Function运行所在的项目仍需单独启用DocumentAI服务:

  • 进入Google Cloud控制台的API库,搜索Cloud Document AI API
  • 确认当前Cloud Function所属项目已启用该API

3. 代码中手动加载本地凭据,覆盖了默认服务账号

若代码中使用google.auth.load_credentials_from_file()等方法手动加载本地密钥文件,会导致Cloud Function使用本地ADC而非默认服务账号,引发配额项目关联问题:

  • 删除代码中手动加载凭据的逻辑,Cloud Function会自动使用自身的默认服务账号完成认证

4. DocumentAI处理器所在项目的权限限制

若DocumentAI处理器位于其他项目,需确保Cloud Function的服务账号被授权访问该处理器:

  • 进入处理器所在项目的IAM页面,添加Cloud Function的服务账号,并授予roles/documentai.apiUser角色
  • 或在处理器的权限设置界面,配置允许外部账号访问该处理器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:15:55