GCP数据流刷新您的凭据时出现问题

时间:2020-04-15 18:27:54

标签: java google-cloud-platform google-cloud-dataflow apache-beam

我正在尝试使用Gradle在Java中创建数据流。我创建了一个gradle任务,用于通过DataflowRunner将作业上传到GCP并通过environment "GOOGLE_APPLICATION_CREDENTIALS", "....json"设置我的凭据,但是当我查看该作业时,所看到的只是:

Workflow failed. Causes: There was a problem refreshing your credentials. Please check: 
1. Dataflow API is enabled for your project. 
2. There is a robot service account for your project: 
service-[project number]@dataflow-service-producer-prod.iam.gserviceaccount.com 
should have access to your project. 
If this account does not appear in the permissions tab for your project, contact Dataflow support.

我已经确保为我的项目启用了数据流API,并且该服务帐户存在并且具有editorCloud Dataflow Service Agent角色。我已经在getting started页面上对我的代码和示例代码进行了测试,同样的问题。

2 个答案:

答案 0 :(得分:0)

在新GCP项目中首次使用Dataflow时,需要启用API(快速入门中的第3步),这可能需要几分钟。在此步骤中,创建了两个service accounts

Cloud Dataflow服务帐户: service-<project-number>@dataflow-service-producer-prod.iam.gserviceaccount.com

控制器服务帐户: <project-number>-compute@developer.gserviceaccount.com

第一个帐户是错误帐户。我认为您尚未启用Dataflow API或在启用API的同时执行了作业。正如您提到的那样,验证步骤是,nex步骤是检查默认服务帐户是否已被修改,例如,它们是重新创建的还是默认权限已更改。这些修订也适用于Controller服务帐户。

此外,请不要忘记将the proper permissions分配给执行Dataflow作业的帐户。

更新:

如果问题仍然存在,则说明服务帐户很可能已损坏,在这种情况下,建议使用新的服务帐户或Contact Cloud Support创建一个新的GCP项目。

答案 1 :(得分:0)

如果Google Cloud项目中的Compute Engine默认服务帐户被禁用,则可能触发此问题:enter image description here

状态应显示绿色对勾。