首页 > 解决方案 > Firebase 函数调用/执行限制很痛苦

问题描述

我正在使用 firebase 托管和函数将 PDF 转换为图像。

为此,我编写了一个函数,该函数获取文件并将 pdf 上传到存储中,生成签名 URL 并将其返回给用户。

在托管中,我编写了一个重写,它将请求从 /ecc 重定向到 ecc 函数。

设置运行良好。网站已启动并正在运行。

但是当我要求一小群 100 人使用它时。

然后firebase函数开始抛出错误429,请求太多。

在 100 秒内执行功能是否有任何限制?

这是日志:

错误:超出配额(配额组“CPUMilliSecondsNonbillable”的配额超出并限制消费者“project_number:992192007775”的服务“cloudfunctions.googleapis.com”的“每 100 秒函数调用中的 CPU 分配”。);要增加配额,请在https://console.cloud.google.com/billing?project=myProject在您的项目中启用计费。无法执行功能。{"serviceContext":{"service":"ecc"},"context":{"reportLocation":{"functionName":"ecc","lineNumber":0,"filePath":"file"}}}

在 Firebase 定价中,它说每月 125K 调用是免费的,但需要 40K GB 和 CPU 秒。

所以如果我有一个执行时间为 10 秒的函数,我每个月只能调用 4000 个函数吗?并且每 100 秒限制 16 次调用。其他121K功能在哪里?

来自配额的更新信息

了解这里的限制真是一件令人头疼的事情这是主要的配额页面

配额页

函数执行时间为 10 秒。我会对此进行计算。

现在考虑到所有这些,我可以说我每 100 秒可以执行 50 个函数。

我的错误是什么QUOTA EXCEEDED 'CPU allocation in function invocations per 100 seconds'

但根据配额,每 100 秒 FUN INV 中的 CPU 分配是 100K !!!??

怎么竟然超过了极限?

正如我所说,我的函数执行时间约为 5-10 秒,并且在调用限制的情况下,最大秒数为 500。

这是怎么回事?,为什么 QUOTA 超过了?
beetwenReadInvoking函数有什么区别?

标签: firebasegoogle-cloud-platformgoogle-cloud-functions

解决方案


从错误来看,您似乎已经超过了每月 Firebase Functions (CPU) 的配额,并且由于您使用的是免费套餐,因此每月只有40K 。

在免费层 (Spark) 中使用 Firebase 功能非常有限,并且仅适用于Node 8

要解决此问题,您需要升级到 Blaze 计划(即用即付)。它也有免费层:

CPU --> 每月最多释放 200K

请在此处阅读有关此内容的更多信息


推荐阅读