【发布时间】:2020-02-06 21:30:05
【问题描述】:
我正在努力使用 javascript/Nodejs8 Google Cloud Function 将有效负载发布到 Google PubSub。
所以我有一个由 HTTP 请求触发的云函数,然后请求正文被发布到一个 pubsub 主题(配置为拉模式)。
这是我的代码:
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const topic = pubsub.topic('my-fancy-topic');
function formatPubSubMessage(reqObj){
// the body is pure text
return Buffer.from(reqObj.body);
};
exports.entryPoint = function validate(req, res) {
topic.publish(formatPubSubMessage(req)).then((messageId) => {
console.log("sent pubsub message with id :: " + messageId)
});
res.status(200).json({"res":"OK"});
};
我的问题是云函数在发布 pubsub 消息之前完成执行(在日志中,日志“函数执行需要 X 毫秒,以状态代码完成:200”在我的 pubsub 日志之前大约 30 或 40 秒出现. 我也有几次“忽略完成函数中的异常”的日志,但我没有得到我的 pubsub 日志)
我不是 javascript 或 nodejs 专家,我也不掌握 javascript 承诺,但我想知道是否可以使发布同步。我也在想我可能在这里做错了什么!
提前感谢您的帮助。
【问题讨论】:
标签: javascript google-cloud-platform google-api google-cloud-functions google-cloud-pubsub