Я подключаюсь к своему экземпляру GCP BigTable с помощью python (библиотека google-cloud-bigtable) после настройки «GOOGLE_APPLICATION_CREDENTIALS» в переменных среды. Я преуспеваю в этом.
Однако мое требование состоит в том, что я хочу передать реквизиты для входа во время выполнения при создании объекта BigTable Client, как показано ниже:
client = bigtable.Client(credentials='82309281204023049', project='xjkejfkx')
Я выполнил Документация клиента GCP BigTable для подключения к GCP BigTable, но получаю следующую ошибку:
Traceback (most recent call last):
File "D:/testingonlyinformix/bigtable.py", line 14, in <module>
client = bigtable.Client(credentials = "9876543467898765", project = "xjksjkdn", admin=True)
File "D:\testingonlyinformix\new_venv\lib\site-packages\google\cloud\bigtable\client.py", line 196, in __init__
project=project, credentials=credentials, client_options=client_options,
File "D:\testingonlyinformix\new_venv\lib\site-packages\google\cloud\client\__init__.py", line 320, in __init__
self, credentials=credentials, client_options=client_options, _http=_http
File "D:\testingonlyinformix\new_venv\lib\site-packages\google\cloud\client\__init__.py", line 167, in __init__
raise ValueError(_GOOGLE_AUTH_CREDENTIALS_HELP)
ValueError: This library only supports credentials from google-auth-library-python. See https://google-auth.readthedocs.io/en/latest/ for help on authentication with this library.
Может кто-нибудь подсказать, какие поля/атрибуты объект Client
ожидает во время выполнения при подключении к GCP BigTable?
Спасибо
@RajeevTirumalasetty, к сведению, у нас уже установлена библиотека google-auth, не могли бы вы помочь мне понять, как мы передаем учетные данные в BigTable с помощью google-auth в программе? Спасибо
Также, как вы упомянули, я проверил документацию, но они говорят, что OAuth устарел и так далее, я в тупике и не могу найти другого способа подключения, кроме определения «GOOGLE_APPLICATION_CREDENTIALS» в переменных среды :(
После 2 часов поиска я наконец попал на эти страницы, пожалуйста, проверьте их по порядку:
from google_auth_oauthlib import flow
appflow = flow.InstalledAppFlow.from_client_secrets_file(
"client_secrets.json", scopes=["https://www.googleapis.com/auth/bigtable.admin"])
appflow.run_console()
credentials = appflow.credentials
credentials
на предыдущем шаге необходимо предоставить объекту BigTable клиент:
client = bigtable.Client(credentials=credentials, project='xjkejfkx')
Это решение сработало для меня, если у кого-то есть другие предложения, пожалуйста, сделайте шаг.
Как упоминалось в приведенном выше сообщении об ошибке. Вы пытались добавить google-auth-library-python? И выполнили аутентификацию через эту библиотечную функцию?