【问题标题】:Firebase Callable Functions cold-startFirebase 可调用函数冷启动
【发布时间】:2022-01-08 20:05:36
【问题描述】:

我想使用 Firebase 可调用函数在后端运行检查,但我担心冷启动。例如,我想检查用户是否有足够的积分来下载某个产品,但我想避免用户在这个承诺得到解决或拒绝之前等待 10 秒或更长时间,并且从前端运行这些检查是没有选择的因为任何人都可以绕过它们。

有没有办法在 Firebase 上为一组选定的可调用函数进行配置,这样整个体验就不会让用户感到缓慢和令人沮丧?许多用户如果必须等待 10 秒(即使只是第一次)可能会放弃使用我想出售的这项服务...

【问题讨论】:

    标签: javascript node.js firebase google-cloud-functions serverless


    【解决方案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 实例。我会尝试一个温暖的实例。
    • 哦,那真是太糟糕了,感谢您在尝试自己解决这个问题时让我头疼不已!
    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 2022-01-22
    • 1970-01-01
    • 2020-12-23
    • 2021-06-23
    • 2021-07-16
    • 2021-08-14
    • 2020-05-18
    相关资源
    最近更新 更多