在 Dataflow 中创建作业时出错(当前用户不能充当服务帐户)
Posted
技术标签:
【中文标题】在 Dataflow 中创建作业时出错(当前用户不能充当服务帐户)【英文标题】:Error when creating a Job in Dataflow (Current user cannot act as service account) 【发布时间】: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 角色添加到我在项目中拥有的现有服务帐户中,但它们似乎都不是我正在寻找的默认服务帐户。您最好的选择是在 IAM 中创建一个自定义服务帐户并使用它来构建/运行您的工作。如果您使用云构建来部署和运行您的模板,则需要设置您的日志记录位置。
更多详情请点击以下链接:
Using custom service accounts in cloud build Setting logging location in cloud build YAML【讨论】:
以上是关于在 Dataflow 中创建作业时出错(当前用户不能充当服务帐户)的主要内容,如果未能解决你的问题,请参考以下文章
django 3.2-在 sqlite3 中创建超级用户时出错
在 SQL Server 中创建数据库用户时使用 pymssql 出错