【问题标题】:DataFlow SDK 2.x: PubSubIO authorization errorDataFlow SDK 2.x:PubSubIO 授权错误
【发布时间】:2019-02-24 08:54:22
【问题描述】:

Reading from Pubsub using Dataflow Java SDK 2

我正在尝试如下:

public class App2 {
    public static void main(String[] args) {
        Pipeline pipeline = Pipeline.create(PipelineOptionsFactory.fromArgs(args).create());
        pipeline
                .apply("ReadStrinsFromPubsub",
                        PubsubIO.readStrings().fromTopic("projects/dev/topics/trading"))
                .apply("PrintToStdout", ParDo.of(new DoFn<String, Void>() {
                    @ProcessElement
                    public void processElement(ProcessContext c) {
                        System.out.printf("Received at %s : %s\n", Instant.now(), c.element()); // debug log
                    }
                }));

        pipeline.run().waitUntilFinish();
    }
}

由于以下原因发生错误:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "The request is missing a valid API key.",
    "reason" : "forbidden"
  } ],
  "message" : "The request is missing a valid API key.",
  "status" : "PERMISSION_DENIED"
}

我该如何解决?

【问题讨论】:

  • 你是在本地机器上运行的吗?
  • 是的。我在本地机器上运行此代码。如何在本地机器上运行此代码?

标签: java google-cloud-platform google-cloud-pubsub dataflow


【解决方案1】:

gcloud auth application-default login 将使您能够使用登录机器上的默认服务帐户。

【讨论】:

    【解决方案2】:

    您可能缺少为本地计算机设置的用于访问 GCP 的服务帐户。

    请参考Getting Started with Authentication 设置您的服务帐户和 GOOGLE_APPLICATION_CREDENTIALS 变量。

    1) 在 GCP 控制台中创建服务帐号;

    2) 将json密钥文件下载到本地;

    3) 将 GOOGLE_APPLICATION_CREDENTIALS 变量设置为 json 密钥文件的路径。

    【讨论】:

      猜你喜欢
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多