Google Cloud Functions无法使用发布/订阅死信主题

时间:2020-05-14 23:47:00

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

即使函数崩溃或失败,似乎GCP Cloud Functions始终在调用时确认ACK Pubsub PUSH消息。

这会阻止使用新的发布/订阅“死信”主题功能,该功能要求消息传递失败后才能将其转发到另一个主题。 目前,消息永远不会失败。

是否可以通过Cloud Functions利用“死信主题”或pubsub重新交付? 除了在函数本身上设置“重试”标志之外,这不能解决此问题。

2 个答案:

答案 0 :(得分:1)

推送订阅意味着两件事:

  • 以--trigger-http模式创建函数
  • 创建使用Cloud Functions URL的推送PUSH订阅。

您在--trigger-topic模式下创建了一个函数,它是一个后台函数。

您有here what you have to do for marking the function as failed

如果需要更多帮助,请共享您的代码

答案 1 :(得分:0)

可以解决此问题的一种方法(直到GCP开始支持云功能的手动确认)是通过重新排队进入同一主题,并在失败的情况下增加重试次数。您可以将重试计数存储在有效负载本身中,例如:

{
  "retry_count": 1,
  "data": {...}
}

此外,为避免错误消息被永久重试,您可以将其配置为如果尝试重试> x,则将其推送到死信。

这仅在topi只有一个订户的情况下解决了问题。