DataFlow SDK 2.x: ошибка авторизации PubSubIO - PullRequest
0 голосов
/ 20 сентября 2018

Чтение из Pubsub с использованием 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"
}

Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

gcloud auth application-default login позволит вам использовать служебную учетную запись по умолчанию с компьютера, с которого вы входите.

0 голосов
/ 20 сентября 2018

Возможно, вам не хватает учетной записи службы, настроенной для доступа к GCP на локальном компьютере.

См. Начало работы с проверкой подлинности , чтобы настроить учетную запись службы и переменную GOOGLE_APPLICATION_CREDENTIALS.

1) Создайте учетную запись службы в консоли GCP;

2) Загрузите файл ключа json в свой локальный каталог;

3) Установите для переменной GOOGLE_APPLICATION_CREDENTIALS путь кфайл ключей json.

...