簡體   English   中英

DataFlow SDK 2.x:PubSubIO授權錯誤

[英]DataFlow SDK 2.x: PubSubIO authorization error

使用Dataflow Java SDK 2從Pubsub讀取

我正在嘗試如下所示:

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"
}

我該如何解決?

您可能缺少為本地計算機訪問GCP設置的服務帳戶。

請參閱“ 身份驗證入門”以設置您的服務帳戶和GOOGLE_APPLICATION_CREDENTIALS變量。

1)在GCP控制台中創建一個服務帳戶;

2)將json密鑰文件下載到本地;

3)將GOOGLE_APPLICATION_CREDENTIALS變量設置為json密鑰文件的路徑。

gcloud auth application-default login將使您能夠使用登錄機器上的默認服務帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM