作者:男孩花朵 | 来源:互联网 | 2023-02-07 10:03
转换相对较小的图像(2mb)时,我不断从Cloud Functions for Firebase中得到零星的错误.如果成功,该功能只需要大约2000ms或更短的时间来完成,根据Image Magick文档,我不应该看到任何问题.
我尝试增加命令的缓冲区大小,这是Firebase中不允许的,我试图找到替代方案,.spawn()
因为它可能会因为垃圾和速度慢而过载.什么都行不通.
1> 小智..:
我迷失在用户界面,找不到任何更改内存的选项,但终于找到了它:
转到Google Cloud Platform控制台(而不是Firebase控制台)
在菜单中选择Cloud Functions
现在,如果正确的话,你会在这里看到你的firebase功能.否则,请检查您是否选择了正确的项目.
忽略所有复选框,按钮和菜单项,只需单击该功能的名称即可.
单击编辑(顶层菜单),仅更改分配的内存,然后单击保存.
问候,彼得
2> Michael Giov..:
您可以在Firebase上的Cloud Function文件中进行设置.
const runtimeOpts = {
timeoutSeconds: 300,
memory: '1GB'
}
exports.myStorageFunction = functions
.runWith(runtimeOpts)
.storage
.object()
.onFinalize((object) = > {
// do some complicated things that take a lot of memory and time
});
从这里的文档中获取:
https ://firebase.google.com/docs/functions/manage-functions#set_timeout_and_memory_allocation
不要忘记然后firebase deploy
从您的终端运行.
应该是一致的答案.人们正在用命令行回答,如果你在一个团队项目或项目转移,那就不好了.
从“ firebase-functions”导入{VALID_MEMORY_OPTIONS};打字稿的“ VALID_MEMORY_OPTIONS ['1GB']`
3> Kirill..:
[更新]正如一位评论者建议的那样,这应该不再是一个问题,因为firebase功能现在可以在重新部署时保持其设置.谢谢firebase!
事实证明,这并不明显或记录在案,您可以在Google Functions Console中增加功能的内存分配.您还可以增加长时间运行功能的超时.它解决了内存过载的问题,现在一切都很好.
编辑:请注意,Firebase将在部署时重置您的默认值,因此您应该记得登录控制台并立即更新它们.我仍然在寻找通过CLI更新这些设置的方法,当我找到它时会更新.
如何增加内存对价格的影响?
4> 小智..:
最新的firebase deploy命令会将内存分配覆盖为默认的256MB,超时最长为60秒.
或者,要指定所需的内存分配和最大超时,我使用gcloud命令,例如:
gcloud beta函数部署YourFunctionName --memory = 2048MB --timeout = 540s
其他选择,请参阅:
https://cloud.google.com/sdk/gcloud/reference/beta/functions/deploy