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

如何让作为日志接收器的Pubsub触发函数且不发送日志内容?

解决方案

问题核心

你的日志接收器默认将**完整日志条目(含insertId等元数据)**推送到Pub/Sub,而函数仅期望接收Jupyter中那种空JSON结构的消息,格式不匹配导致报错。

具体解决步骤

  • 精准过滤目标日志
    修改日志接收器的高级过滤条件,只保留Vertex AI监控触发的通知类日志,避免无关日志流入。示例过滤规则:

    resource.type="ml_model"
    AND logName:"projects/[你的项目ID]/logs/google.cloud.aiplatform.logging.v1.ModelMonitoringJob"
    AND (severity="ERROR" OR severity="WARNING")
    

    可根据你的监控触发场景调整规则,确保只推送需要触发流水线的日志。

  • 自定义Pub/Sub消息结构
    在日志接收器的「转换」设置中,使用结构化日志转换,直接构造空JSON对象(和Jupyter中发送的data={}完全一致)。转换模板设置为:

    {}
    

    这样推送到Pub/Sub的消息内容就和你手动发送的空字典完全匹配。

  • 校验函数消息解析逻辑
    确保函数正确解析Pub/Sub消息体,示例代码:

    import base64
    import json
    
    def pubsub_trigger_pipeline(event, context):
        if "data" in event:
            try:
                # 解码并解析Pub/Sub消息
                message_data = json.loads(base64.b64decode(event["data"]).decode())
                # 此处message_data为空字典,与Jupyter发送的格式一致
                # 执行你的流水线逻辑
            except Exception as e:
                print(f"消息解析失败: {str(e)}")
                return
        # 后续流水线执行逻辑
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:27:37