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

Cloud Run服务日志摘要非TextPayload,日志页显示异常求助

解决Cloud Run日志摘要无有效内容的问题

问题现象

Cloud Run服务的日志页面中,所有日志摘要仅显示请求元数据(如POST 0 B null ms curl/7.68.0 http://example.a.run.app/),必须展开日志条目才能看到实际的warning/info/error日志内容;但在Logs Explorer中日志显示正常。

原因分析

Cloud Run日志页面的摘要默认展示与HTTP请求关联的日志内容,当前代码中的日志未绑定到请求上下文(缺少请求trace ID关联),导致Cloud Run无法将应用日志与请求关联,从而无法在摘要中展示实际日志信息。

解决方案

修改代码,将日志条目与当前请求的trace ID关联,让Cloud Run识别并关联请求与日志。具体步骤如下:

1. 提取请求的Trace ID

Cloud Run会自动为每个HTTP请求注入X-Cloud-Trace-Context请求头,从中可以提取trace ID。

2. 修改日志记录逻辑

在请求处理函数中,获取trace ID并附加到日志条目,或者配置日志处理器自动关联请求上下文。

修改后的代码示例:

import logging
import os
from flask import Flask, make_response, request
import google.cloud.logging
from google.cloud.logging_v2.handlers import CloudLoggingHandler, setup_logging

app = Flask(__name__)

# 初始化Cloud Logging客户端和处理器
client = google.cloud.logging.Client()
handler = CloudLoggingHandler(client, name="your-service-name")
setup_logging(handler)

# 配置日志级别
logger = logging.getLogger()
logger.setLevel(logging.INFO)

@app.route('/', methods=['POST'])
def hello_world():
    # 从请求头提取trace ID并格式化
    trace_header = request.headers.get('X-Cloud-Trace-Context')
    trace = None
    if trace_header:
        trace_id = trace_header.split('/')[0]
        project_id = os.environ.get('GOOGLE_CLOUD_PROJECT')
        trace = f"projects/{project_id}/traces/{trace_id}"

    # 记录日志时附加trace上下文
    logging.warning('warning message', extra={'trace': trace} if trace else {})
    logging.info('info message', extra={'trace': trace} if trace else {})
    logging.error('error message', extra={'trace': trace} if trace else {})

    return make_response('OK', 200)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))

3. 额外注意事项

  • 确保服务账号拥有roles/logging.logWriter权限(Cloud Run默认配置已包含,自定义账号需手动检查)。
  • 重新构建并部署Cloud Run服务,确保修改后的代码生效。
  • Bazel构建无需额外配置,只需确保容器内已安装google-cloud-logging和flask依赖。

验证

部署完成后发送请求到Cloud Run服务,日志页面的摘要将直接显示对应的warning/info/error日志内容,无需展开条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:02:08