首页 > 解决方案 > firebase - 如何将软件安装到已部署到的服务器上?

问题描述

我在使用 firebase 函数时遇到错误。当我使用模拟器在本地运行这些功能时,它们工作正常。但是,当我firebase deploy随后执行某个功能时,我收到一个错误,提示我部署到的服务器上安装的 ffmpeg 版本已过时

如何ffmpeg在服务器上更新(或任何软件)?也许我通过 SSH 连接并更新软件?也许我应该提供一些配置来定义我的代码在部署之前所依赖的软件?请告知如何进行更新谢谢

选读:

我的 Node.js 代码使用execSync(myFfmpegCommand)这就是存在依赖项的原因

标签: firebasegoogle-cloud-functions

解决方案


这是我的发现。

由于磁盘是只读的,因此您无法将自定义软件安装到 Node.js运行时环境中。如果您想要的软件不在运行时环境中,那么您就被塞满了。

我进一步发现,函数并不适用于重量级的工作,而只是适用于轻量级的操作。如果一个函数需要做一些繁重的工作,那么它可以要求 Google App Engine 为它做这件事。该函数通过 HTTP 或 PubSub 与 App Engine 通信。

我听到你问什么是 App Engine!它基本上允许您将服务器代码部署到云中。例如,想想您通常用于后端的 express.js 服务器。这就是 App Engine。然后你只需部署它!

App Engine 可以通过 yaml 文件进行配置以确定内存,也可以选择通过 Dockerfile 来确定要使用的操作系统和要安装的软件。yaml 看起来像这样:

runtime: custom # uses Dockerfile
env: flex

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

将 App Engine 视为重担。当一个 firebase 函数想要做一些艰苦的工作时,它只是要求 App Engine 为它做这件事!通过这种方式,firebase 函数成为触发其他工作的简单事件处理程序。


推荐阅读