Проблема, с которой вы столкнулись, вызвана разработкой / тестированием в двух средах: на вашем рабочем столе и в App Engine. Эту проблему легко решить простым и безопасным способом.
При разработке / тестировании на рабочем столе используйте служебную учетную запись. Используйте переменную среды для указания учетной записи службы.
Вкл. Windows:
set GOOGLE_APPLICATION_CREDENTIALS=c:\fullpath\serviceaccount.json
Вкл. Linux:
export GOOGLE_APPLICATION_CREDENTIALS=/fullpath/serviceaccount.json
Вы можете выполнить предыдущую команду вручную в командной строке или введите его в сценарий запуска (Linux) или в системную переменную среды (Windows).
Для App Engine я не рекомендую использовать файл учетной записи службы в вашем приложении , Я также не рекомендую устанавливать переменную среды.
Клиентские библиотеки Google поддерживают учетные данные приложения по умолчанию (AD C). Это означает, что библиотеки будут пытаться найти учетные данные для вас автоматически. Затем клиентские библиотеки могут использовать среду, чтобы найти учетную запись службы для использования в Windows и автоматически использовать учетную запись службы App Engine по умолчанию при развертывании.
Учетные данные по умолчанию для облачного приложения Google ]
Включив AD C в свой код, вы можете тестировать в Windows / Linux и развертывать в App Engine без изменения кода и без рисков для безопасности, связанных с включением файла учетной записи службы JSON в ваше развертывание. .