启用并显示数据流API和服务帐户后,如何解决“ ...刷新您的凭证问题”错误

时间:2019-02-05 04:31:30

标签: google-cloud-dataflow

每次尝试在数据流中运行作业时,都会出现以下错误:

“工作流程失败。原因:刷新凭据时出现问题。请检查: 1.为您的项目启用了Dataflow API。 2.您的项目有一个机器人服务帐户: service- [项目编号] @ dataflow-service-producer-prod.iam.gserviceaccount.com应该可以访问您的项目。如果此帐户未出现在您的项目的权限选项卡中,请与Dataflow支持联系。,您的项目没有cloudservices机械手帐户。请确保为您的项目启用了Dataflow API。“

我已禁用并重新启用了数据流API。我也尝试过禁用和重新启用所有其他依赖的API。

我检查了IAM页面,并且该服务帐户在那里并且具有“ Cloud Dataflow Service Agent”角色,我什至尝试为该项目授予服务帐户“所有者”权限,以查看是否有帮助,但没有。

还有其他想法吗?预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这使我疯狂了很长一段时间。最终发现,我需要将服务帐户和关联的凭据添加到我的管道选项中。像这样:

final static List<String> SCOPES = Arrays.asList(
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/devstorage.full_control",
            "https://www.googleapis.com/auth/userinfo.email",
            "https://www.googleapis.com/auth/datastore",
            "https://www.googleapis.com/auth/pubsub");
GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream("/path/to/service/account/keyfile.json"));
options.setServiceAccount("example@project-name.iam.gserviceaccount.com");
options.setGcpCredential(credentials.createScoped(SCOPES));

希望这可以帮助遇到相同问题的其他人