【发布时间】:2021-02-12 18:51:30
【问题描述】:
我正在使用 firebase 托管和函数一起将 PDF 转换为图像。
为此,我编写了一个函数,它获取文件并将 pdf 上传到存储中,生成签名 URL 并将其返回给用户。
在托管中,我编写了一个重写,将请求从 /ecc 重定向到 ecc 函数。
设置运行良好。网站已启动并正在运行。
但是当我让一小群 100 人使用它时。
然后 firebase 函数开始抛出 err 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 秒。然后我会计算一下。
-
1,2. CPU allocation in function Invocation PerDay:150K。 由于某种原因,前两个相同。 -
3. CPU allocation in function invocation per 100 seconds:100k(0.1% CurrentUsage)。 意味着每 100 秒我可以“调用”10k 个函数。 -
4. Function invocation per 100 seconds:50。好的,把第三点放在一边。 -
5. Read Request Per Day:50可能和第四个一样? -
6. Function invocation per day:5000我一直在做梦,直到第 4 点睁开眼睛。 -
7. Write request per day:1000功能部署可能吗? -
8. Write request per 100 seconds:20没关系。
现在考虑到所有这些,我可以说我每 100 秒可以执行 50 个函数。
我的错误是QUOTA EXCEEDED 'CPU allocation in function invocations per 100 seconds'
但是根据 QUOTA,每 100 秒 FUN INV 中的 CPU 分配是 100K !!! ??
它是如何超过限制的?
正如我所说,我的函数执行时间约为 5-10 秒,并且在调用限制的情况下,最大秒数为 500。
这是怎么回事?为什么QUOTA超过了?
beetwen Read 和 Invoking 函数有什么区别?
【问题讨论】:
-
你确定这是你用的吗?作为文档says,此 CALL api 用于测试而不是用于生产,这就是它受到限制的原因
-
这是我能想到的。我试过我自己,和我的朋友一起使用网站来确定。是的,firebase 函数日志中出现了速率限制。
-
您的函数使用什么触发器以及如何触发它们?
-
我正在使用托管和重定向网页请求以使用
XMLHttprequest运行并将文件和密码作为表单数据发送。我已将日志更新为主要问题。 -
@MethkalKhalawi 我通过主机重定向调用该函数,而不使用任何触发器。
标签: firebase google-cloud-platform google-cloud-functions