是否可以用pubsub触发cloudEvent

问题描述 投票:0回答:1

是否可以从 pubsub 触发云事件。

import { cloudEvent } from "@google-cloud/functions-framework"

export const myCloudEvent = cloudEvent<GoogleDrivePageMessage>("myTopic", cloudEvent => {
  const data = cloudEvent.data;
  logger.log("Called pub sub")
});

并通过调用publishMessage来触发它

const pubsub = new PubSub(config);
const topic = pubsub.topic("myTopic");
topic.publishMessage({ data: Buffer.from(messageJson) }, (error, messageId) => {
      if (error) {
        logger.log(`There was an error trying to send pubsub message: ${messageId}`, error)
      }
    });

我也尝试在本地测试这个,但模拟器似乎甚至没有加载 cloudEvent 函数。我如何在不先部署的情况下在本地测试它。

google-cloud-platform google-cloud-functions cloudevents
1个回答
0
投票

PubSub 本身不支持 CloudEvent 格式(很接近但不相似)。当您从 pubSub 读取数据时,库会将 PubSub 格式转换为 Cloud Event 格式。

但是,要发布消息,您必须以 PubSub 格式发布它们(属性和负载,而不是标头和正文)

© www.soinside.com 2019 - 2024. All rights reserved.