Firebase 可调用函数冷启动
Posted
技术标签:
【中文标题】Firebase 可调用函数冷启动【英文标题】:Firebase Callable Functions cold-start 【发布时间】:2022-01-08 20:05:36 【问题描述】:我想使用 Firebase 可调用函数在后端运行检查,但我担心冷启动。例如,我想检查用户是否有足够的积分来下载某个产品,但我想避免用户在这个承诺得到解决或拒绝之前等待 10 秒或更长时间,并且从前端运行这些检查是没有选择的因为任何人都可以绕过它们。
有没有办法在 Firebase 上为一组选定的可调用函数进行配置,这样整个体验就不会让用户感到缓慢和令人沮丧?许多用户如果必须等待 10 秒(即使只是第一次)可能会放弃使用我想出售的这项服务...
【问题讨论】:
【参考方案1】:有没有办法为选定的可调用组进行配置 Firebase 上的功能?
是的,如doc 中所述,您可以使用runWith
参数为给定的云函数设置最小实例数,如下所示:
exports.myCallableCloudFunction = functions
.runWith(
// Keep 1 instance warm
minInstances: 1,
)
.https.onCall((data, context) =>
// Cloud Function code
);
您可以通过传递所需的值来使多个实例保持温暖,例如minInstances: 3
.
请注意,“保持运行的最小实例数会在空闲率下产生计费成本。通常,保持一个空闲函数实例的温暖成本低于每月 6.00 美元”(摘自文档)。
还请注意,您需要使用此选项配置每个 Cloud Functions,AFAIK 您不能将其应用于一组 Cloud Functions。
【讨论】:
嘿,谢谢我完全忽略了这一点!确实,它有点扼杀了无服务器功能的价格点,但如果我将其保持在最低限度,它可能会起作用。人们还建议在快速路线上使用玉米作业来“ping”某些功能并每隔 x 时间保持它们温暖......你认为这会是一个有效的替代方案吗? “您认为这是一个有效的替代方案吗?” => 不是 100% 可靠的解决方案... Cloud Function 平台可能会在两次 ping 之间杀死您的 Cloud Function 实例。我会尝试一个温暖的实例。 哦,那真是太糟糕了,感谢您在尝试自己解决这个问题时让我头疼不已!以上是关于Firebase 可调用函数冷启动的主要内容,如果未能解决你的问题,请参考以下文章