GCP发布/订阅两次调用云功能

时间:2019-06-20 13:07:08

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

我有一个Google Cloud Function订阅了一个主题。当需要将电子邮件发送给用户时,我们的Go API会向该主题发布消息。 GCF创建电子邮件对象并将其发送到Sendgrid。 问题是90%的时间里,云函数被调用了两次。

订阅的确认截止时间为 600秒,并且在文档中明确说明了GCF在内部进行确认。

我了解PubSub保证至少一次交付和GCF 至少一次执行后台功能。但是,在大多数情况下还是会发生这种情况,我敢肯定这也不对。

我100%确定不是发送2条消息的API。即使我从GCP控制台手动发布消息进行测试,云功能也会运行两次。

This is the GCF log:

因此execution_id是相同的。两次执行都花费不到1秒的时间。

所以我不确定发生了什么,谁来负责此重复?

我猜这是GCF,因为两个执行都具有相同的ID?

有人对如何解决此问题有任何想法吗?

1 个答案:

答案 0 :(得分:1)

我遇到了几乎相同的情况。我通过删除Cloud Functions的条目和Cloud Pub / Sub的订阅,然后重新创建来修复它。到目前为止,看来一切正常。