我正在尝试将google pubsub与云功能一起使用,我的所有工作都正常进行,但是我的消息没有得到确认
我已经做了这些事情:
1)创建一个主题
2)创建一个函数
3)将功能触发器设置为google cloud pubsub
4)为pubsub选择主题
5)将节点版本设置为8
这是我的默认云功能:
/**
* Triggered from a message on a Cloud Pub/Sub topic.
*
* @param {!Object} event Event payload.
* @param {!Object} context Metadata for the event.
*/
exports.helloPubSub = (event, context) => {
const pubsubMessage = event.data;
console.log(Buffer.from(pubsubMessage, 'base64').toString());
};
它将为此主题创建2个订阅,一个为pull,另一个为push
我的云函数被调用,但是我的消息没有得到确认。
根据docs
注意:成功执行函数后,Cloud Functions将在内部对消息进行确认。有关如何使用重试处理失败的信息,请参阅重试后台功能。
所以函数应该自动确认它不起作用。
此流程中的问题是什么。我在做什么错了?
谢谢
答案 0 :(得分:2)
您无需为pubsub云功能显式创建订阅。
在部署云功能并将其指向某个主题时,将自动创建订阅。
创建../snippet-ops.php(446) : eval()'d code:7:boolean false
:
your-topic
部署指向gcloud pubsub topics create your-topic
的功能(这会自动创建订阅):
your-topic
使用您的cloudfunction代码从文件夹中运行deploy命令。您可以更改gcloud functions deploy your-function --region=us-central1 --trigger-topic=your-topic --runtime=python37 --entry-point=main
和runtime
以匹配您的用例。
您创建的任何辅助订阅都没有使用方,因此不会确认消息。另外,如果您的云功能失败,则可能无法确认其消息。
答案 1 :(得分:0)
如果您想尝试使用Cloud Pub / Sub触发器编写,部署和触发Background Cloud Function,那么以下文档页面会更好。
https://cloud.google.com/functions/docs/tutorials/pubsub
我认为您需要触发该功能。
gcloud pubsub topics publish YOUR_TOPIC_NAME --message YOUR_MESSAGE