Google Cloud - Pub Sub Push Subscription 调用云函数重试
Posted
技术标签:
【中文标题】Google Cloud - Pub Sub Push Subscription 调用云函数重试【英文标题】:Google Cloud - Pub Sub Push Subscription invoked cloud function retry 【发布时间】:2021-06-18 23:52:59 【问题描述】:Pub Sub 主题在收到新消息时调用云函数端点。
如果云函数内部发生任何错误,该函数将返回错误。
-
PubSub 是否会在出错时重试交付?
未使用重试选项部署的云功能。想要对 Pub Sub 进行重试控制。
尝试了一个示例发布子主题触发的云函数,该函数总是在执行时返回错误,
**
import (
"context"
"errors"
)
func PushBackOffTest(ctx context.Context, m PubSubMessage) error
print(string(m.Data))
return errors.New("always returns error")
**
但是云函数没有再次执行,只运行了一次。
ACK 截止时间为 600 秒。最大交付尝试 6 。从 G Cloud 控制台配置。
【问题讨论】:
【参考方案1】:如果您希望在发生错误时重新传递事件,则需要通过选中“失败时重试”框在您的云函数中启用重试。否则,无论处理结果如何,Cloud Functions 都会确认从 Pub/Sub 收到的消息。选中此框会告诉 Cloud Functions 使用 Cloud Pub/Sub 的重试机制来处理未确认的消息。
【讨论】:
选中此框是告诉 Cloud Functions 使用 Cloud Pub/Sub 的重试机制来处理未确认的消息。这是否意味着,如果我提到最大交付尝试次数为 6,那么该功能只会重试 6 次? 您如何指定最大传递尝试次数? cloud.google.com/sdk/gcloud/reference/alpha/pubsub/…订阅创建/更新 但这不能在创建与 Pub/Sub 主题相关联的云函数时指定,对吗?您是否正在更新 Cloud Functions 创建的订阅以设置最大重试次数? 是的,它现在可用。如果在适当的重新传递次数后您没有看到消息转到您的死信主题,这可能意味着您没有set up subscribe permission on the subscription and publish permission on the dead letter topic。以上是关于Google Cloud - Pub Sub Push Subscription 调用云函数重试的主要内容,如果未能解决你的问题,请参考以下文章
Google Cloud Pub/Sub - Cloud Function & Bigquery - 数据插入未发生
Google Cloud 上使用 Pub/Sub 的主/从模式