微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GCP Vertex AI 训练自定义作业:用户没有 bigquery.jobs.create 权限

如何解决GCP Vertex AI 训练自定义作业:用户没有 bigquery.jobs.create 权限

我正在努力从 Google Cloud Platform 的 Vertex AI 训练自定义作业内部使用 Bigquery python 客户端执行查询

我已经构建了一个包含此 python 代码的 Docker 镜像,然后我将它推送到容器注册表 (eu.gcr.io)

我正在使用此命令进行部署

      gcloud beta ai custom-jobs create --region=europe-west1 --display-name="$job_name" \
        --config=config_custom_container.yaml \
        --worker-pool-spec=machine-type=n1-standard-4,replica-count=1,container-image-uri="$docker_img_path" \
        --args="${model_type},${env},${Now}"  

我什至尝试使用选项 --service-account 来指定具有 admin Bigquery 角色的服务帐户,但没有奏效。

根据这个链接 https://cloud.google.com/vertex-ai/docs/general/access-control?hl=th#granting_service_agents_access_to_other_resources

Google 管理的 AI Platform 自定义代码服务代理 (Vertex AI) 服务帐户已经有权访问 BigQuery,所以我不明白为什么我的工作失败并出现此错误

google.api_core.exceptions.Forbidden: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/*******/jobs?prettyPrint=false: 
Access Denied: Project *******:
User does not have bigquery.jobs.create permission in project *******.

我已将 id 替换为 *******


编辑: 我已经尝试了几种配置,我最后的配置 YAML 文件只包含这个

baSEOutputDirectory:
  outputUriPrefix:

与 --service-account 选项不同,使用字段 serviceAccount 似乎不会编辑实际配置


编辑 14-06-2021:快速修复

就像@Ricco.D 说的

尝试在您的 bigquery 代码中明确定义 project_id,如果您 还没有这样做。

bigquery.Client(project=[your-project])

解决了我的问题。我仍然不知道原因。

解决方法

要解决此问题,需要在 Bigquery 代码中明确指定项目 ID。

示例:

bigquery.Client(project=[your-project],credentials=credentials)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。