Ошибка BigQuery: «Could not automatically determine credentials»

Аутентификация в Google Cloud возможна из под двух типов аккаунтов User и Service account. И большинство современных гайдов базируются на аутентификации через Service аккаунт, подробнее можно почитать в материалах для изучения в конце статьи.
Аутентификация через сервисный аккаунт
Пройдемся по необходимым этапам для создания сервисного аккаунта и получения JSON-ключа.
- Идем в IAM & Admin и кликаем на Service Accounts, далее кликаем на кнопку Create Service Account
- Вводим имя, описание и жмем Create. Далее выбираем роль и жмем Continue. Done!
- Вновь идем в IAM & Admin и кликаем на Service Accounts, где выбираем вновь созданный аккаунт.
- В этом окне выбираем Keys
- Кликаем Add Key и Create New Key, выбираем JSON
- Кликаем на Create и скачиваем JSON-файл на ваш компьютер
- Будет круто если вы разместите его в корне диска C (напр. «C:\datalake-312615-c84327f654a.json»)
Далее как советует гугл нам необходимо инициализировать переменную с путем до вашего json файла в PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Название_вашего_файла.json"
Далее в cmd:
set GOOGLE_APPLICATION_CREDENTIALS=D:\analyze_sentiment\MyFirstProject-bbe4f7bccb98.json
Но при попытке как-то взаимодействовать с Google Cloud вы получите ошибку DefaultCredentialsError: Could not automatically determine credentials
Ошибка DefaultCredentialsError: Could not automatically determine credentials
В 90% случаев ошибка связана с тем, что переменная была создана в виртуальном окружении, никак не связанном с вашим проектом. Поэтому самым простым решением будет создать переменную через библиотеку os.
Всё что нужно сделать, это добавить в ваш код следующие строки:
import os os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "C:\datalake-312615-c8c1ab7f654a.json"
Данным кодом вы добавляете переменную «GOOGLE_APPLICATION_CREDENTIALS» в виртуальное окружение именно в то виртуальное окружение из которого запускаете ваш скрипт.
Полезные материалы для изучения:
- Аутентификация через сервисный аккаунт: https://cloud.google.com/docs/authentication/production?hl=ru
- Гайд по видам и типам аутентификации: https://cloud.google.com/docs/authentication?hl=ru#api-keys
- Тред на гитхабе: https://github.com/googleapis/google-cloud-python/issues/5449#issuecomment-634528107