我的http触发云功能最近刚刚失败,出现429,这是太多实例了。云函数的最小实例为 1,最大实例为 4。在错误期间,云函数处于空闲状态,直到发生调用。云功能没有启动,所以日志中没有调用时间。随后的调用没有导致错误。云功能对互联网上的外部系统进行 Web 服务调用。
我的第一个想法是云函数超出了 4 个实例的最大值,但事实证明,在那段时间云函数处于空闲状态,并且使用了最少 1 个实例。上次通话是在 2 小时前,这意味着没有超出费率配额。云函数显示内存使用率较低,并且实例计数从未高于或低于 1。日志仅表明请求已中止,因为没有可用的实例。这意味着该函数从未执行过,因此没有执行时间的指标。日志中没有其他内容。
您认为这可能会发生什么?后端有可能因为闲置而杀死云功能吗?如果是这种情况,实例计数是否会下降到零,然后重新启动回到 1(由于最小实例设置),这不会导致日志条目吗?
基于此文档解决 Cloud Functions 错误:
The request was aborted because there was no available instance
(响应代码:429)由于您在配置过程中设置的severity=WARNING
限制,云功能无法扩展。max-instances
这是由以下任一原因引起的:
正如您提到的,
max-instances
设置为4
,这可能会导致错误429。
您可以根据 Google Cloud 推荐尝试以下解决方案: