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

如何为Python版Google Cloud Function日志添加自定义标签

基于Python的Google Cloud Function添加自定义日志标签方案

完全可以实现你要的效果,添加的自定义标签会和默认的function_name、execution_id在日志条目中并列展示,有两种常用实现方式:

方案1:输出结构化JSON日志(无需额外依赖)

Google Cloud Logging会自动识别打印内容中的JSON结构,将labels字段下的键值对识别为日志标签,适配所有Python运行时版本:

import json

def hello_world(request):
    # 你要添加的自定义标签值
    client_id = "client_67890"
    # 构造结构化日志内容
    log_data = {
        "message": "客户端请求处理完成",
        "labels": {
            "client_id": client_id,
            "request_region": "cn-north1"
        },
        "severity": "INFO"
    }
    # 直接打印序列化后的JSON即可
    print(json.dumps(log_data))
    return "ok"

如果习惯用logging模块打印日志,可以自定义日志Formatter自动序列化输出JSON,不需要每次手动调用json.dumps。

方案2:使用官方Cloud Logging SDK(适合复杂日志场景)

需要先安装依赖包:
pip install google-cloud-logging
代码示例如下,运行环境会自动获取日志写入权限,不需要手动配置身份凭证:

import google.cloud.logging
import logging

# 初始化日志客户端,全局仅需执行一次
client = google.cloud.logging.Client()
client.setup_logging()

def hello_world(request):
    client_id = "client_67890"
    # 传入extra参数添加自定义标签
    logging.info(
        "客户端请求处理完成",
        extra={"labels": {"client_id": client_id}}
    )
    return "ok"

注意:如果需要为函数单次执行生命周期内的所有日志都自动添加同一个client_id标签,可以在函数入口处配置全局logging过滤器,不需要每条日志单独传标签参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:45:03