【问题标题】:Error when creating a Job in Dataflow (Current user cannot act as service account)在 Dataflow 中创建作业时出错(当前用户不能充当服务帐户)
【发布时间】:2021-09-24 11:23:25
【问题描述】:

我正在尝试在 Dataflow 中创建一个作业,以将发布到 pub/sub 主题的数据导出到文本文件。保存配置时,我收到“作业创建失败”消息,指定“当前用户无法充当服务帐户 ...-compute@developer.gserviceaccount.com”,如 attached picture 所示。

按照 Google 的 documentation,我为这个项目的用户添加了以下角色(除了我已经拥有的所有者角色):

  • 计算查看器
  • 数据流管理员
  • 数据流开发人员
  • 存储对象管理
  • 服务帐号用户

但是,消息中提到的控制器服务帐户似乎不存在于该项目的帐户服务列表中(IAM & Admin > Account Services)。我在这里有什么遗漏吗?

已检查的其他要求:

  • 我已经启用了 Compute Engine API
  • 作为所有者,我拥有 iam.serviceAccounts.actAs 权限

【问题讨论】:

  • 默认情况下,worker 使用您项目的 Compute Engine 默认服务帐号作为控制器服务帐号。 [链接] (cloud.google.com/dataflow/docs/concepts/…)
  • @SakshiGatyan 如何找到 Compute Engine 的默认服务帐号?我刚刚将 dataflow.worker 和 storage.objectAdmin 角色添加到我在项目中拥有的现有服务帐户中,但它们似乎都不是我正在寻找的默认服务帐户。
  • -compute@developer.gserviceaccount.com 是计算引擎默认服务账号,在开启计算引擎API时自动创建
  • 按照此处的快速入门指南之一开始可能会更容易:cloud.google.com/dataflow/docs/quickstarts
  • 感谢@chamikara,我按照指南中的步骤操作,设置作业时收到的消息是相同的。过去我们在这个项目上正确运行了一些数据流作业,所以我的下一个假设是服务帐户 xxx-compute@developer.gserviceaccount.com 可能在某个时候被意外删除。我已尝试禁用 Compute Engine API 并再次启用它,但问题仍然存在。

标签: google-cloud-platform google-cloud-dataflow google-cloud-iam


【解决方案1】:

您最好的选择是在 IAM 中创建一个自定义服务帐户并使用它来构建/运行您的工作。如果您使用云构建来部署和运行您的模板,则需要设置您的日志记录位置。

更多详情请点击以下链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2014-03-18
    • 2019-05-31
    相关资源
    最近更新 更多