消息未在云功能中得到确认

时间:2019-04-10 06:08:38

标签: google-cloud-functions google-cloud-pubsub

我正在尝试将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将在内部对消息进行确认。有关如何使用重试处理失败的信息,请参阅重试后台功能。

所以函数应该自动确认它不起作用。

此流程中的问题是什么。我在做什么错了?

谢谢

2 个答案:

答案 0 :(得分:2)

您无需为pubsub云功能显式创建订阅。

在部署云功能并将其指向某个主题时,将自动创建订阅。

  1. 创建../snippet-ops.php(446) : eval()'d code:7:boolean false

    your-topic

  2. 部署指向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=mainruntime以匹配您的用例。

您创建的任何辅助订阅都没有使用方,因此不会确认消息。另外,如果您的云功能失败,则可能无法确认其消息。

答案 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