Google Cloud Function - 检测是不是发生重试
Posted
技术标签:
【中文标题】Google Cloud Function - 检测是不是发生重试【英文标题】:Google Cloud Function - Detect if retry occuredGoogle Cloud Function - 检测是否发生重试 【发布时间】:2021-08-29 15:19:26 【问题描述】:我的设置
我有一个后台Google Cloud Function
,它接收来自PubSub
订阅的请求。函数写在python3.8
。
我已启用该功能的重试。我的函数可能会因 memory exceeded 错误而失败。
我希望完成的事情
我想知道函数收到的请求是否是retry
。我想优雅地处理函数失败的情况,所以第二次到达时我会处理它。
使用最大传递尝试和死信主题并不是我想要的,因为max_delivery_attempt
的最小数量是 5。在这种情况下,我的函数可能会在到达死信主题之前失败 5 次。我希望它最多失败一次,然后处理这种情况。
问题
我如何知道正在执行重试?
【问题讨论】:
这能回答你的问题吗? How to identify retried google cloud function? 【参考方案1】:正如您在the documentation的这个页面中看到的,交付尝试字段是:
仅当您拉取订阅时可用,而不是当您将函数直接插入 PubSub 时可用(它是推送订阅并包装在特殊的交付包中) 仅当您在订阅中设置死信主题时才会填充,否则值为 0。因此,如果您需要跟踪此值,我建议您在外部数据库(例如 firestore)中进行跟踪。
【讨论】:
以上是关于Google Cloud Function - 检测是不是发生重试的主要内容,如果未能解决你的问题,请参考以下文章
从 Cloud Function (python) 写入 Google Cloud Storage
Cloud Function 部署问题以安排每日 Cloud SQL 导出到 Google Cloud Storage
在 Google Cloud Function 中设置环境变量
如何修改后台 Cloud Function 的 Google Cloud Pub/Sub 订阅确认截止日期