我使用本教程部署了简单的PubSub Cloud函数触发器:https://medium.com/@milosevic81/copy-data-from-pub-sub-to-bigquery-496e03228a1
对于测试,我将大型(超过8MB(消息推送到PubSub主题
因此,Cloud函数向日志返回了以下错误消息:Function execution could not start, status: 'request too large'
问题是,Cloud函数开始不断启动,产生持续的资源使用和日志消息。只有在我手动清除了相关的PubSub主题后,它才停止
是否有防止此类行为的机制/配置?理想情况下,在Cloud Function触发器执行之后,不应再次拾取PubSub消息。
您已达到云功能的配额
最大未压缩HTTP请求大小->10MB
一种解决方案是使用云运行(配额更高,32Mb(
为此,您需要对进行几次更改
- 在Cloud Run中转换您的Cloud函数。我写了一篇文章(不是专门针对这一点的,但你有一个Python的例子(,上个月我在GDG Ahmedabad上介绍了这一点,这次是在GO
- 在您的PubSub主题上创建推送订阅,并在";"推";HTTP字段
Cloud Run可以在1个实例上处理多达80个并发请求,而Cloud Functions只能处理一个。因为你的请求是";"大";如果在同一实例中处理过多请求,可能会导致内存问题。您可以使用带有--concurrency
参数的Cloud Run来控制此操作。将其设置为1以具有与CLoud函数相同的行为。