【问题标题】:Single Cloud Function to call 100+ local functions单个云函数调用 100+ 本地函数
【发布时间】:2020-02-20 07:33:10
【问题描述】:

Hi 拥有 100 多个云功能和完整的应用程序、控制面板和营销网站。测试时,我的客户说网站速度很慢。这是因为所有这些功能的冷启动时间。

我对每分钟都执行每个功能的 cron 作业并不感兴趣,因为有很多功能,而且正如其他帖子所暗示的那样,它们并不总是有效。

昨晚我有个主意。我知道这有点粗略,但我想知道拥有一个云函数端点的后果(除了不能释放单个函数)会用函数名称切换参数,然后调用导入的其他本地函数。这意味着单个函数第一次对某些用户来说会很慢,但随后所有其他函数都会很快,因为该函数已经是温暖的。

不幸的是,在 firebase 发布 aws 之类的功能以允许付费以保持功能温暖之前,我需要执行上述操作之一来提高性能。

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    不可能完全消除冷启动时间。它们将始终存在于无服务器环境中——这是事实。您能做的最好的事情就是组织您的代码以尽量减少冷启动时间。如果没有查看您的所有代码和具体的基准,我们无法给出具体的建议。

    您可以控制的唯一事情是确保每个函数只在全局范围内加载最少量的代码才能正确运行。因此,如果您的函数都在未使用的全局作用域,所有这些函数将支付不必要的冷启动成本来加载和运行它们不使用的代码。

    有一些资源可以帮助您做到这一点。 Watch this video 了解更多详情。

    【讨论】:

    • 感谢您的快速回复。我已阅读并观看了 firebase 制作的视频,并且我相信我只是在导入执行该功能所需的最低限度的内容。我知道云功能会有冷启动时间,而且我没有对它们做更多的研究,现在它最终导致了问题。不幸的是,我并没有在寻找解决方法,并且很好奇这样做会产生什么后果(如果有的话)。我可以接受一些冷启动,只是需要大幅减少。再次感谢您的回复 :) 非常感谢。
    • 只想更新一下:我将所有功能都移动到使用这种方法,经过漫长的等待时间后,整个应用程序的其余部分都非常快。这种方法对我来说效果很好:)
    猜你喜欢
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 2017-08-04
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    相关资源
    最近更新 更多