尝试通过应用引擎监控 api 列出不同项目中的指标时出现 403 错误
403 error when trying to list metrics in different project through monitoring api from app engine
-
google-app-engine
-
google-cloud-platform
-
google-cloud-monitoring
-
google-cloud-iam
-
google-cloud-metrics
我正在使用用 python2.7 编写的 App Engine 应用程序来收集来自不同项目的监控指标。我 运行 来自云 shell App Engine 应用程序部署在 projectA 中,它能够通过以下调用从 projectA 收集指标
service = build('monitoring', 'v3', cache_discovery=True)
project_name = 'projects/{project_id}'.format(
project_id=project_id
)
metrics = service.projects().metricDescriptors().list(
name=project_name,
pageSize=config.PAGE_SIZE,
pageToken=next_page_token
).execute()
此调用是在循环中编写的,现在我需要收集 ProjectB 指标,我拥有对 ProjectB 的所有者访问权限。当 ProjectB 作为参数传递给 project_id 时,出现以下错误:
logMessage: "Error: <HttpError 403 when requesting https://monitoring.googleapis.com/v3/projects/ProjectB/metricDescriptors?pageToken=&alt=json&pageSize=500 returned "Permission monitoring.metricDescriptors.list denied (or the resource may not exist).">"
severity: "ERROR"
sourceLocation: {
file: "/base/data/home/apps/s~ProjectA/list-metrics:20200706t123743.427891295940019389/main.py"
functionName: "post"
line: "665"
}
time: "2020-07-06T16:10:43.724399Z"
我不确定应该怎么做才能使这项工作正常进行?
我是 google 云及其 api 的新手,也是应用引擎的新手,python2.7 请帮助,谢谢
我已经通过将应用引擎的默认服务帐户添加到 ProjectB 的 monitoring.viewer 角色以这种方式解决了这个问题,现在我也可以从 ProjectB 获取指标
google-app-engine
google-cloud-platform
google-cloud-monitoring
google-cloud-iam
google-cloud-metrics
我正在使用用 python2.7 编写的 App Engine 应用程序来收集来自不同项目的监控指标。我 运行 来自云 shell App Engine 应用程序部署在 projectA 中,它能够通过以下调用从 projectA 收集指标
service = build('monitoring', 'v3', cache_discovery=True)
project_name = 'projects/{project_id}'.format(
project_id=project_id
)
metrics = service.projects().metricDescriptors().list(
name=project_name,
pageSize=config.PAGE_SIZE,
pageToken=next_page_token
).execute()
此调用是在循环中编写的,现在我需要收集 ProjectB 指标,我拥有对 ProjectB 的所有者访问权限。当 ProjectB 作为参数传递给 project_id 时,出现以下错误:
logMessage: "Error: <HttpError 403 when requesting https://monitoring.googleapis.com/v3/projects/ProjectB/metricDescriptors?pageToken=&alt=json&pageSize=500 returned "Permission monitoring.metricDescriptors.list denied (or the resource may not exist).">"
severity: "ERROR"
sourceLocation: {
file: "/base/data/home/apps/s~ProjectA/list-metrics:20200706t123743.427891295940019389/main.py"
functionName: "post"
line: "665"
}
time: "2020-07-06T16:10:43.724399Z"
我不确定应该怎么做才能使这项工作正常进行? 我是 google 云及其 api 的新手,也是应用引擎的新手,python2.7 请帮助,谢谢
我已经通过将应用引擎的默认服务帐户添加到 ProjectB 的 monitoring.viewer 角色以这种方式解决了这个问题,现在我也可以从 ProjectB 获取指标