You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用GCP Python API获取SQL实例CPU利用率报403权限错误如何解决

问题排查步骤
  • 修正代码参数错误

Query类的project参数仅需要传入纯项目ID,不需要带projects/前缀,你当前传入了带前缀的projects/my-first-project会导致资源定位错误,这是该报错最高发的原因。同时你漏了service_account的导入语句,会先触发命名未定义错误。
修正后可运行代码如下:

from google.cloud import monitoring_v3
from google.cloud.monitoring_v3 import query
# 补全缺失的依赖导入
from google.oauth2 import service_account

credential_file = "/home/user/my-first-project.json"

GCP_SCOPES = [
    'https://www.googleapis.com/auth/sqlservice.admin',
    "https://www.googleapis.com/auth/logging.read",
    "https://www.googleapis.com/auth/cloud-platform",
    "https://www.googleapis.com/auth/monitoring",
    "https://www.googleapis.com/auth/monitoring.read"
]

gcp_credential = service_account.Credentials.from_service_account_file(credential_file,scopes=GCP_SCOPES)

client = monitoring_v3.MetricServiceClient(credentials=gcp_credential)
# 仅传入纯项目ID,不要加projects/前缀
project_id = "my-first-project"

cpu_query = query.Query(client,
                        project=project_id,
                        metric_type='cloudsql.googleapis.com/database/cpu/utilization',
                        minutes=5)

next(cpu_query.iter())
  • 校验服务账号权限配置
    确认你的服务账号在my-first-project项目下被授予了roles/monitoring.viewer(监控查看者)角色,不要误将权限授予到其他项目。可以通过以下命令校验权限:
    gcloud projects get-iam-policy my-first-project --filter="bindings.members:serviceAccount:<替换为你的服务账号邮箱>"
    如果输出中没有出现roles/monitoring.viewer,需要重新绑定权限:
    gcloud projects add-iam-policy-binding my-first-project --member="serviceAccount:<替换为你的服务账号邮箱>" --role="roles/monitoring.viewer"
  • 确认指标资源存在
    先登录GCP控制台,进入「监控」-「指标浏览器」,搜索cloudsql.googleapis.com/database/cpu/utilization指标,确认对应项目下的SQL实例有该指标的上报数据,如果控制台无法查询到数据,说明实例未正常上报指标或实例不存在,也会触发该报错。

内容的提问来源于stack exchange,提问作者Nitesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:39:03