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

GCP Workflow发布Pub/Sub消息:如何单条消息携数据与属性

解决GCP Workflow中Pub/Sub单条消息同时包含数据与属性的问题

问题出在你调用Pub/Sub API时的messages数组结构:原代码里data和attributes是数组的两个独立元素,这会被解析成两条独立的Pub/Sub消息,一条仅包含数据,一条仅包含属性。要实现单条消息同时包含两者,需要将data和attributes放在同一个消息对象中。

修正后的工作流代码如下:

- initializeParameters:
    assign:
        - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
        - outputFileName: '${input.outputFileName}'
        - pubsubMessage:
              filename: ${outputFileName}
        - base64Msg: '${base64.encode(json.encode(pubsubMessage))}'
    next: createNotifyMap
- createNotifyMap:
    assign:
        - notifyMap:
            firstAttribute: "value"
            secondAttribute: "value"
    next: notifyBC
- notifyBC:
    call: googleapis.pubsub.v1.projects.topics.publish
    args:
        topic: ${ "projects/" + projectId + "/topics/topicname" }
        body:
            messages:
                - data: '${base64Msg}'
                  attributes: ${notifyMap}  # 将attributes与data放在同一个消息对象下
    next: successfulRun

关键修改:把attributes从独立的数组项,移到和data同一个-开头的对象内,这样就会生成一条同时包含数据和属性的Pub/Sub消息。

内容的提问来源于stack exchange,提问作者Jeffrey Van Laethem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:22:37