从 python 命令行调用 google api 时出错
error while calling google api from python command line
我对 python 很陌生。我正在尝试通过来自 google 云 shell 的 python 命令行调用 google 监控 API。我正在使用 python 2.7。在那之前我已经安装了
pip install --upgrade google-api-python-client
这是调用google监控的代码api
from googleapiclient.discovery import build
service = build('monitoring', 'v3', cache_discovery=True)
timeseries = service.projects().timeSeries().list(
name="my-project",
filter="metric.type=compute.googleapis.com/instance/cpu/utilization"
aggregation_alignmentPeriod=86400s,
# aggregation_crossSeriesReducer=api_args["crossSeriesReducer"],
aggregation_perSeriesAligner="ALIGN_MEAN",
aggregation_groupByFields="metric.labels.key",
interval_endTime="2020-08-23T17:30:04.707Z",
interval_startTime="2020-08-22T17:30:05.603000Z",
pageSize=100
).execute()
我在 python 命令行中传递了适当的值,当我执行此行时
service = build('monitoring', 'v3', cache_discovery=True)
我收到以下错误:
>>>from googleapiclient.discovery import build
>>> service = build('monitoring', 'v3', cache_discovery=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 282, in build
adc_key_path=adc_key_path,
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 489, in build_from_document
credentials = _auth.default_credentials()
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/_auth.py", line 44, in default_credentials
credentials, _ = google.auth.default()
File "/usr/local/lib/python2.7/dist-packages/google/auth/_default.py", line 338, in default
credentials, project_id = checker()
File "/usr/local/lib/python2.7/dist-packages/google/auth/_default.py", line 208, in _get_gae_credentials
project_id = app_engine.get_project_id()
File "/usr/local/lib/python2.7/dist-packages/google/auth/app_engine.py", line 77, in get_project_id
return app_identity.get_application_id()
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/api/app_identity/app_identity.py", line 455, in get_application_id
_, domain_name, display_app_id = _ParseFullAppId(full_app_id)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/api/app_identity/app_identity.py", line 436, in _ParseFullAppId
psep = app_id.find(_PARTITION_SEPARATOR)
AttributeError: 'NoneType' object has no attribute 'find'
我不知道为什么会这样,有人可以帮助我吗?谢谢
我一直在我的 google 云 shell 上执行此操作,所以我认为这可以在不通过 GOOGLE_APPLICATION_CREDENTIALS 的情况下工作,因为我已经为计算引擎等其他 api 完成了此操作,但看起来我需要从 服务帐户 创建一个密钥,该帐户有权调用此 通过这个命令监控api,
gcloud iam service-accounts keys create --iam-account outputkey
完成后,我必须将此值导出到 GOOGLE_APPLICATION_CREDENTIALS 中的环境文件。
我对 python 很陌生。我正在尝试通过来自 google 云 shell 的 python 命令行调用 google 监控 API。我正在使用 python 2.7。在那之前我已经安装了
pip install --upgrade google-api-python-client
这是调用google监控的代码api
from googleapiclient.discovery import build
service = build('monitoring', 'v3', cache_discovery=True)
timeseries = service.projects().timeSeries().list(
name="my-project",
filter="metric.type=compute.googleapis.com/instance/cpu/utilization"
aggregation_alignmentPeriod=86400s,
# aggregation_crossSeriesReducer=api_args["crossSeriesReducer"],
aggregation_perSeriesAligner="ALIGN_MEAN",
aggregation_groupByFields="metric.labels.key",
interval_endTime="2020-08-23T17:30:04.707Z",
interval_startTime="2020-08-22T17:30:05.603000Z",
pageSize=100
).execute()
我在 python 命令行中传递了适当的值,当我执行此行时
service = build('monitoring', 'v3', cache_discovery=True)
我收到以下错误:
>>>from googleapiclient.discovery import build
>>> service = build('monitoring', 'v3', cache_discovery=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 282, in build
adc_key_path=adc_key_path,
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 489, in build_from_document
credentials = _auth.default_credentials()
File "/home/mugham/.local/lib/python2.7/site-packages/googleapiclient/_auth.py", line 44, in default_credentials
credentials, _ = google.auth.default()
File "/usr/local/lib/python2.7/dist-packages/google/auth/_default.py", line 338, in default
credentials, project_id = checker()
File "/usr/local/lib/python2.7/dist-packages/google/auth/_default.py", line 208, in _get_gae_credentials
project_id = app_engine.get_project_id()
File "/usr/local/lib/python2.7/dist-packages/google/auth/app_engine.py", line 77, in get_project_id
return app_identity.get_application_id()
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/api/app_identity/app_identity.py", line 455, in get_application_id
_, domain_name, display_app_id = _ParseFullAppId(full_app_id)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/api/app_identity/app_identity.py", line 436, in _ParseFullAppId
psep = app_id.find(_PARTITION_SEPARATOR)
AttributeError: 'NoneType' object has no attribute 'find'
我不知道为什么会这样,有人可以帮助我吗?谢谢
我一直在我的 google 云 shell 上执行此操作,所以我认为这可以在不通过 GOOGLE_APPLICATION_CREDENTIALS 的情况下工作,因为我已经为计算引擎等其他 api 完成了此操作,但看起来我需要从 服务帐户 创建一个密钥,该帐户有权调用此 通过这个命令监控api,
gcloud iam service-accounts keys create --iam-account outputkey
完成后,我必须将此值导出到 GOOGLE_APPLICATION_CREDENTIALS 中的环境文件。