首页 文章

无法写入bigquery - 权限被拒绝:Apache Beam Python - Google Dataflow

提问于
浏览
0

我使用谷歌 Cloud 数据流服务已经使用apache beam python sdk已经有一段时间了 .

我正在为新项目设置数据流 .

数据流管道

  • 从Google数据存储中读取数据

  • 处理它

  • 写入Google Big-Query .

我有类似的管道运行在其他项目上运行完美 .

今天,当我启动数据流作业时,管道启动,从数据存储区读取数据,处理它以及何时将其写入bigquery,它导致

apache_beam.runners.dataflow.dataflow_runner.DataflowRuntimeException: 
Dataflow pipeline failed. State: FAILED, Error:
Workflow failed. Causes: S04:read from datastore/GroupByKey/Read+read 
from datastore/GroupByKey/GroupByWindow+read from datastore/Values+read 
from datastore/Flatten+read from datastore/Read+convert to table 
rows+write to bq/NativeWrite failed., BigQuery import job 
"dataflow_job_8287310405217525944" failed., BigQuery creation of import 
job for table "TableABC" in dataset "DatasetABC" in project "devel- 
project-abc" failed., BigQuery execution failed., Error:
Message: Access Denied: Dataset devel-project-abc:DatasetABC: The user 
service-account-number-compute@developer.gserviceaccount.com does not 
have bigquery.tables.create permission for dataset devel-project- 
abc:DatasetABC: HTTP Code: 403

我确保启用了所有必需的API . 据我所知,服务帐户有必要的许可 .

My question is 这可能会出错?

Update

根据我在以前的项目中的记忆(准确地说是3个不同的项目),我没有给数据流服务代理任何特定的权限 . 计算引擎服务代理具有数据流管理,编辑器,数据流查看器等权限 . 因此,在继续给予与bigquery相关的服务代理权限之前,我想知道为什么环境的行为与以前的项目不同 .

是否有任何权限/政策更改/更新在过去几个月内生效,导致需要大量作者的许可?

2 回答

  • 1

    请确保您的服务帐户('service-account-number-compute@developer.gserviceaccount.com')在'devel-project-abc:DatasetABC'中具有'roles / bigquery.dataEditor'角色 . 还要确保为项目启用了“BigQuery Data Editor”角色 .

    GCP IAM是您可以查看的地方 .

  • 0

    您可以找到BigQuery here的每个角色的功能 . 如果以前的项目使用primitive IAM角色,则可能需要正确设置 . 此处提供了IAM Release Notes页面,其中提供了有关对系统执行的更新的其他信息 .

相关问题