Не удалось загрузить учетные данные по умолчанию? (Узел.JS Google вычислительный движок учебник)

ситуация:

Я следую этому руководству:https://cloud.google.com/nodejs/tutorials/bookshelf-on-compute-engine

все работает нормально, пока я не npm start на:

http://localhost:8080

меня встречает следующий текст на пустой странице:

Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.

что не имеет смысла, так как я использую OAuth. Я прошел по ссылке и прочитал страницу, но у меня нет GOOGLE-APPLICATION-CREDENTIALS поле в любом месте, и ничего об этом в учебнике.


вопрос:

не могли бы вы воспроизвести шаги и скажите мне, если вы получите тот же результат ?

(занимает 5 минут)

Если нет, то что я мог сделать неправильно ?

3 ответов


Да, у меня была такая же ошибка. Это раздражает, потому что документы Google Cloud Platform для их" начала работы " учебник книжной полки не упоминает об этом нигде. Это означает, что любой новый разработчик, который попробует этот учебник, увидит эту ошибку. Какой ужасный первый опыт. Не уверен, что GCP заботится, я близок к переключению на AWS... Я скучаю по их обслуживанию клиентов и технической поддержке..

в любом случае...

читать этот: https://developers.google.com/identity/protocols/application-default-credentials

я исправил эту проблему, запустив: gcloud auth application-default login

это сделает вас войти, и после этого вы код локально будет использовать эту аутентификацию.


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

при запуске приложения в Google Compute Engine, если экземпляр Compute Engine был создан с соответствующими областями (cloud-platform должно быть достаточно), то приложение будет аутентифицироваться с Google Cloud Platform APIs автоматически без дополнительной работы с вашей стороны.


есть 2 решения для этой проблемы. Один из вариантов, как упоминалось другими, - использовать gcloud auth application-default login

второй вариант-установить переменную среды GOOGLE_APPLICATION_CREDENTIALS. Он должен указывать на файл, который определяет учетные данные. Чтобы получить этот файл, вам необходимо выполнить следующие действия:

перейдите на страницу учетные данные консоли API.

в раскрывающемся списке проект выберите проект.

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

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

для типа ключа выберите параметр ключ JSON, затем выберите Создать. Папка автоматически загружается на компьютер.

поставить *.JSON-файл, который вы скачали в папку выбирающий.

этот каталог должен быть приватным (вы не можете позволить никому получить доступ к это), но доступный для вашего кода веб-сервера.

задайте переменной среды GOOGLE_APPLICATION_CREDENTIALS значение путь загруженного файла JSON.

см.https://developers.google.com/identity/protocols/application-default-credentials для деталей