#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, вы перезапустили свой компьютер после установки переменной среды?