【问题标题】:service account execution batch dataflow job服务帐户执行批处理数据流作业
【发布时间】:2020-05-18 05:57:38
【问题描述】:
我需要使用服务帐户执行数据流作业,我正在关注同一平台本身提供的一个非常简单且基本的示例字数。
奇怪的是我得到的错误:
据此,GCP 需要具有 Dataflow 工作人员权限的服务帐户才能执行我的工作。即使我已经设置了所需的权限,当错误继续出现时,堰的部分就出现了:
有人可以解释这种奇怪的行为吗?非常感谢
【问题讨论】:
标签:
google-cloud-platform
google-cloud-dataflow
dataflow
dataflowtask
【解决方案1】:
要运行 Dataflow 作业,项目必须启用结算功能和以下 Google Cloud Platform API:
- 谷歌云数据流 API
- 计算引擎 API(谷歌计算引擎)
- 谷歌云记录 API
- 谷歌云存储
- 谷歌云存储 JSON API
- BigQuery API
- 谷歌云发布/订阅
- 谷歌云数据存储 API
您还应该在项目中为您在 Dataflow 作业中使用的任何一种 API 提供足够的配额。
我建议您创建一个之前未使用过其名称的新服务帐户,然后将roles/dataflow.worker 授予此新服务帐户。请记住,Cloud IAM 传播需要不到 60 秒,最多 7 分钟,因此请在 IAM 更改和 Dataflow 作业创建之间留出几分钟时间。
另一种可能的解决方法是删除 Dataflow 工作人员权限并重新添加。删除帐户后,权限仍然存在,指向其旧 ID。在明确删除角色之前,不得刷新此 ID。
我鼓励您访问Dataflow IAM 角色,了解角色描述和权限文档。