Как указать расположение учетных данных GCP в файле application.properties (для использования Pub / Sub в GCP)? - PullRequest
1 голос
/ 19 марта 2020

Это кажется простым для передачи файла ключа учетной записи службы (сгенерированного из консоли GCP) путем указания местоположения файла в файле application.properties. Тем не менее, я попробовал все следующие варианты:

1. spring.cloud.gcp.credentials.location=file:/home/my_user_id/mp6key.json
2. spring.cloud.gcp.credentials.location=file:src/main/resources/mp6key.json
3. spring.cloud.gcp.credentials.location=file:./main/resources/mp6key.json
4. spring.cloud.gcp.credentials.location=file:/src/main/resources/mp6key.json

Все это закончилось одной и той же ошибкой:

java.io.FileNotFoundException: /home/my_user_id/mp6key.json (No such file or directory)

Может кто-нибудь посоветовать, где мне поместить файл ключа, а затем, как следует Я правильно указываю путь к файлу?

Те же программы успешно работают в Ecplise с сообщениями, опубликованными и подписанными с использованием обработки Pub / Sub из GCP (с использованием идентификатора учетной записи Project / ключа учетной записи службы, сгенерированного в GCP), но Теперь, после развертывания для запуска на GCP, застрял с вышеуказанной проблемой.

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Мой ответ прост: если вы запускаете свой код на GCP, вам не нужно использовать файл ключа служебной учетной записи. Проблема устранена, проблема решена!

Более серьезно, взгляните на сервисную идентификацию. Я не знаю, какой у вас сейчас сервис (Compute? Function? Cloud Run?). В любом случае, вы можете прикрепить любую служебную учетную запись к компонентам GCP. Затем, когда вы кодируете, просто используйте учетные данные по умолчанию. Автоматически загружается идентификатор компонента. Нет ключа для управления, нет ключа для безопасного хранения, нет ключа для поворота!

Если вы предоставите более подробную информацию о вашей целевой платформе, я мог бы дать некоторые рекомендации для достижения этой цели.

Имейте в виду, что файл ключа учетной записи службы предназначен для использования автоматическими c приложениями (без учета учетной записи пользователя), размещенными вне GCP (на прем, другой облачный провайдер, CI / CD, Apigee, ...)

ОБНОВЛЕНИЕ

Когда вы используете свой личный аккаунт, вы также можете использовать учетные данные по умолчанию.

  • Установите gcloud SDK на свой компьютер
  • Используйте команду gcloud auth application-default login
  • Следуйте инструкциям
  • Наслаждайтесь!

Если это не работает, отобразите <path>, отображаемый после команды входа в систему, и установите это значение в переменной среды с именем GOOGLE_APPLICATION_CREDENTIALS.

Если вы хотите использовать файл ключа служебной учетной записи (это проблема безопасности по предыдущей причине, но ...), вы можете использовать ее локально

  • Либо задайте путь к файлу ключа json в переменной среды GOOGLE_APPLICATION_CREDENTIALS
  • Или выполните эту команду gcloud auth activate-service-account --key-file=<path to your json key file>
0 голосов
/ 20 марта 2020

Вы пытались следовать этому быстрому запуску ? Пожалуйста, постарайтесь тщательно следовать ей и объяснить, если при завершении быстрого запуска возникнет какая-либо ошибка.

В любом случае, перед запуском скрипта Java попробуйте запустить на консоли следующее (пожалуйста, измените точный путь, по которому вы сохраните ваш ключ:

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/mp6key.json"

Как вы аутентифицируете свои учетные данные в вашем Java скрипте?

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