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

如何将一个GCP项目日志发送至另一项目并在Cloud Logging中查看

跨GCP项目日志转发至目标项目Cloud Logging(基于Pub/Sub)

你已经完成了源项目日志接收器、Pub/Sub Topic和目标项目订阅的配置,接下来只需要把订阅收到的日志写入目标项目的Cloud Logging即可,最直接的方式是用Cloud Function做中转:

1. 创建目标项目的Cloud Function

这个函数会监听你创建的Pub/Sub订阅,把收到的日志条目写入目标项目的Cloud Logging:

  • 进入目标项目的Cloud Function控制台,点击创建函数
  • 触发方式选择「Pub/Sub」,并选择你之前创建的订阅
  • 运行环境选Python(示例用Python,其他语言逻辑类似),替换代码为:
    import base64
    import json
    from google.cloud import logging_v2
    
    client = logging_v2.LoggingServiceV2Client()
    TARGET_PROJECT_ID = "你的目标项目ID"
    CUSTOM_LOG_NAME = "source-project-logs" # 自定义日志名,方便区分源项目日志
    
    def pubsub_to_logging(event, context):
        # 解码Pub/Sub消息
        msg_data = base64.b64decode(event["data"]).decode("utf-8")
        log_entry = json.loads(msg_data)
        
        # 构建日志写入参数
        log_path = client.log_path(TARGET_PROJECT_ID, CUSTOM_LOG_NAME)
        # 保留源项目标识,方便溯源
        resource = {
            "type": "global",
            "labels": {
                "source_project": log_entry.get("resource", {}).get("labels", {}).get("project_id", "unknown")
            }
        }
        
        # 写入日志(用json_payload保留原日志结构,text_payload则转为文本)
        entry = {
            "log_name": log_path,
            "resource": resource,
            "json_payload": log_entry
        }
        
        client.write_log_entries([entry])
    
  • 给Cloud Function的默认服务账号添加权限:
    • 在目标项目中,授予该服务账号roles/logging.logWriter角色,确保它能写入Cloud Logging
    • 确认服务账号已拥有Pub/Sub订阅的读取权限(创建函数时默认配置,若有问题可手动添加roles/pubsub.subscriber)

2. 验证日志转发

在源项目生成一条测试日志,比如执行命令:

gcloud logging write test-cross-project-log "test message from source project" --project=你的源项目ID

等待1-2分钟后,在目标项目的Cloud Logging控制台,搜索自定义的日志名source-project-logs,就能看到从源项目转发过来的日志了。

额外优化:直接用Cloud Logging跨项目接收器

如果不需要Pub/Sub做中转,其实可以简化流程:

  • 在源项目创建日志接收器时,直接选择「Cloud Logging bucket」或「Cloud Logging日志」作为目标,指定目标项目
  • 给源项目的日志服务账号(格式为serviceAccount:cloud-logs@system.gserviceaccount.com)授予目标项目的roles/logging.logWriter权限
  • 日志会直接写入目标项目的Cloud Logging,无需额外中间服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:20:14