Не удалось установить соединение с API в Google Cloud Platform

#python #google-app-engine #google-cloud-platform #credentials

#python #google-app-engine #google-cloud-platform #учетные данные

Вопрос:

Для получения показателей мониторинга из моего проекта я использовал приведенный ниже код Python:

 from google.cloud import monitoring_v3
from google.oauth2 import service_account
from googleapiclient import discovery

credentials = service_account.Credentials.from_service_account_file(
   r'D:GCPcredentialsblahblah-04e8fd0245b8.json')

service = discovery.build('compute', 'v1', credentials=credentials)

client = monitoring_v3.MetricServiceClient()

project_name = f"projects/{blahblah-300807}"

resource_descriptors = client.list_monitored_resource_descriptors(
    name=project_name)

for descriptor in resource_descriptors:
    print(descriptor.type)
 

Я все сделал хорошо. Я правильно указал путь к файлу для учетных данных, но получил это сообщение об ошибке:

 raise exceptions.DefaultCredentialsError(_HELP_MESSAGE)
google.auth.exceptions.DefaultCredentialsError: 
Could not automatically determine credentials. 
Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create 
credentials and re-run the application. 
For more information, please see 
https://cloud.google.com/docs/authentication/getting-started
 

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

Ответ №1:

Вы не используете учетные данные при создании клиента

 client = monitoring_v3.MetricServiceClient()
 

Вы можете изменить его следующим образом

 client = monitoring_v3.MetricServiceClient(credentials=credentials)
 

Лично я предпочитаю явно не указывать учетные данные в коде, и я предпочитаю использовать GOOGLE_APPLICATION_CREDENTIALS для этого переменную среды.

Создайте переменную среды в своей ОС с именем GOOGLE_APPLICATION_CREDENTIALS и значением, которые указывают на файл ключа учетной записи службы D:GCPcredentialsblahblah-04e8fd0245b8.json .

Но, если это на вашем собственном компьютере, вы можете даже не использовать файл ключа учетной записи службы (что на самом деле небезопасно, я объясню почему в этой статье), вы можете использовать свои собственные учетные данные. Для этого просто создайте учетные данные приложения по умолчанию (ADC) следующим образом gcloud auth application-default login

Комментарии:

1. Спасибо. Он работал, передавая учетные данные в качестве аргумента, как вы сказали. Я создал переменную среды, передав файл json в качестве значения, но это не сработало

2. Поскольку вы используете ОС Windows и поскольку это ОС Windows, вы перезапустили свой компьютер после установки переменной среды?