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

为Google Cloud SQL创建授权令牌及Stack Driver日志获取技术问询

获取Google Cloud SQL日志查询所需的授权令牌生成方法

我来帮你梳理下怎么生成调用Stackdriver Logging API所需的授权令牌,不管是开发测试还是生产环境都有对应的方案:

一、开发测试阶段:用gcloud CLI快速生成临时令牌

这是最方便的本地调试方式:

  • 首先确保你已经安装并初始化了gcloud CLI,登录你的Google Cloud账号:
    gcloud auth login
    
  • 设置当前工作的项目ID(替换成你的实际项目ID):
    gcloud config set project YOUR_PROJECT_ID
    
  • 直接生成访问令牌(有效期约1小时):
    gcloud auth print-access-token
    
    你还可以把这个命令直接嵌入到curl调用里,省去手动复制的麻烦:
    curl --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header 'Content-Type: application/json' \
      --header 'x-referer: https://developers.google.com ' \
      -X POST \
      --data '{"resourceNames":["projects/YOUR_PROJECT_ID"],"filter":"logName=\"projects/YOUR_PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-general.log\""}' \
      "https://content-logging.googleapis.com/v2/entries:list?fields=entries(jsonPayload)"
    

二、生产环境:用服务账号生成稳定令牌

如果是应用程序长期调用,建议使用服务账号,无需手动登录维护:

  • 先在Google Cloud控制台创建一个服务账号,给它分配Logs Viewer(roles/logging.viewer)权限,确保它拥有读取Cloud SQL日志的权限
  • 下载服务账号的JSON密钥文件(比如命名为service-account-key.json)
  • 激活服务账号并生成令牌:
    gcloud auth activate-service-account --key-file=service-account-key.json
    gcloud auth print-access-token
    
  • 或者直接用curl调用OAuth 2.0端点生成令牌(不依赖gcloud CLI):
    curl -X POST "https://oauth2.googleapis.com/token" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=$(python -c 'import jwt, time, json; key = json.load(open("service-account-key.json")); payload = {"iss": key["client_email"], "scope": "https://www.googleapis.com/auth/logging.read", "aud": "https://oauth2.googleapis.com/token", "exp": time.time() + 3600, "iat": time.time()}; print(jwt.encode(payload, key["private_key"], algorithm="RS256"))')"
    
    这个命令会返回包含access_token的JSON响应,提取后即可用于你的curl调用。

关键注意事项

  • resourceNames参数必须写成projects/YOUR_PROJECT_ID格式,不能只用单纯的项目名称
  • Cloud SQL的日志名称格式要准确,比如MySQL通用查询日志是projects/YOUR_PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-general.log,注意URL编码或者用双引号包裹
  • 令牌默认有效期为1小时,生产环境中需要定时刷新令牌以保证服务可用性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:21:11