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

使用Python按执行ID获取Cloud Function实例的执行日志

基于执行ID获取Cloud Function执行日志的Python实现方法

当然可以通过google-cloud-logging库实现需求,以下是具体步骤和代码示例:

前置准备

  • 安装依赖库:
    pip install google-cloud-logging
    
  • 身份认证:
    • 本地开发环境:运行gcloud auth application-default login完成身份验证
    • 生产环境:使用服务账号密钥,设置环境变量GOOGLE_APPLICATION_CREDENTIALS指向密钥文件路径

核心实现代码

from google.cloud import logging_v2

def get_function_execution_logs(project_id, function_name, execution_id):
    # 初始化日志客户端
    client = logging_v2.Client(project=project_id)
    
    # 构造精准过滤条件
    filter_str = (
        f'resource.type="cloud_function" '
        f'AND resource.labels.function_name="{function_name}" '
        f'AND jsonPayload.execution_id="{execution_id}"'
    )
    
    # 查询匹配的日志条目
    log_entries = client.list_entries(filter_=filter_str)
    
    # 遍历输出日志内容
    for entry in log_entries:
        timestamp = entry.timestamp.strftime("%Y-%m-%d %H:%M:%S")
        severity = entry.severity
        # 日志内容可能存在于jsonPayload或textPayload中,按需调整
        log_content = entry.jsonPayload.get("message", entry.textPayload)
        print(f"[{timestamp}] [{severity}] {log_content}")

# 调用示例
if __name__ == "__main__":
    YOUR_PROJECT_ID = "你的GCP项目ID"
    YOUR_FUNCTION_NAME = "目标Cloud Function名称"
    TARGET_EXECUTION_ID = "要查询的执行ID"
    get_function_execution_logs(YOUR_PROJECT_ID, YOUR_FUNCTION_NAME, TARGET_EXECUTION_ID)

关键说明

  • 过滤逻辑:通过resource.type锁定Cloud Function资源类型,resource.labels.function_name指定目标函数,jsonPayload.execution_id匹配具体执行ID,确保只返回指定实例的执行日志
  • 日志结构:Cloud Function的执行日志通常存储在jsonPayload.message或textPayload字段中,可根据实际日志格式调整提取逻辑
  • 时间范围优化:如果需要缩小查询范围,可在过滤条件中添加时间限制,例如:timestamp>="2024-05-01T00:00:00Z" AND timestamp<="2024-05-02T00:00:00Z"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:03:14