我正在尝试使用服务帐户运行Dataflow作业。 我正在使用GcpOptions标志:
--serviceAccountKeyfile="dataflow-service-account.p12" --serviceAccountName="dataflow"
我收到以下错误:
Unable to verify that GCS bucket exists.com.google.cloud.dataflow.sdk.util.DataflowPathValidator.verifyPathIsAccessible(DataflowPathValidator.java:84)
com.google.cloud.dataflow.sdk.util.DataflowPathValidator.validateOutputFilePrefixSupported(DataflowPathValidator.java:63)
com.google.cloud.dataflow.sdk.runners.DataflowPipelineRunner.fromOptions(DataflowPipelineRunner.java:274)
我想针对应用程序默认凭据使用服务帐户凭据。
答案 0 :(得分:1)
serviceAccountName 可以是服务帐户的完整电子邮件地址。这通常是在谷歌API中识别它们的方式。通常类似于: name@project.iam.gserviceaccount.com
此外,您需要根据the docs.
在IAM中添加一系列角色我需要:
答案 1 :(得分:0)
我发布关于这个问题的更新,因为参数名称已更改。
参数现在在 Java 中为 --serviceAccount
,在 Python 中为 --service_account_email
。
指定的 SA 应具有以下形式:my-service-account-name@<project-id>.iam.gserviceaccount.com
设置这个值会改变worker service account,完整的解释可以在here找到。