Запуск Apache Beam с Google Dataflow без установки учетных данных приложения Google - PullRequest
0 голосов
/ 03 января 2019

Поскольку я знаю, как запустить Apache Beam в задании Google Dataflow, я должен сначала установить переменную окружения для моего файла учетных данных json

set GOOGLE_APPLICATION_CREDENTIALS=/path/to/jsonfile.json

Я хочу автоматизировать это и думаю, что мне нужно запуститьbash-скрипт моим приложением java beam.Есть ли лучший способ сделать это в моем луче Java-классе?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Да, есть способ загрузить файл учетных данных Json из приложений Java.

Пожалуйста, обратитесь к приведенному ниже фрагменту кода, чтобы создать объект Pipeline с программной ссылкой Google для учетных данных, загруженной программно.

    //create scope list with DataFlow's scopes
    Set<String> scopeList = new HashSet<String>();
    scopeList.addAll(DataflowScopes.all());

    //create GoogleCredentials object with Json credential file & the scope collection prepared above
    GoogleCredentials credential = GoogleCredentials
                                         .fromStream(new FileInputStream("path-to-credential-json-file"))
                                         .createScoped(scopeList);

    //create default pipeline
    PipelineOptions  options = PipelineOptionsFactory.create();

    //assign the credential 
    options.as(GcpOptions.class).setGcpCredential( credential);

    Pipeline pipeLine = Pipeline.create(options);

Этот подход может помочь вам не зависеть от переменной среды GOOGLE_APPLICATION_CREDENTIALS.

Это сработало в моей среде, пожалуйста, сообщите мне, если у вас возникнут какие-либо проблемы с этим.

0 голосов
/ 03 января 2019

Насколько я знаю, вы не можете легко изменить переменные окружения исполняемой программы.То есть вы не можете сделать это из своей основной программы, которая запускает конвейер.Установка его в сценарии - лучший вариант здесь.

Альтернативы - это хаки, подобные https://blog.sebastian -daschner.com / records / change_env_java , я не рекомендую использовать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...