【问题标题】:Firebase Cloud Function configurationFirebase 云函数配置
【发布时间】:2018-11-07 14:48:51
【问题描述】:

虽然我发现 Firebase 中的 Cloud Functions 相当方便,但我很难弄清楚如何以任何方式配置它们。 firebase init 生成了包含 functions.predeploy 属性的 firebase.json,但是还有其他可用的选项吗?我找不到此文件的任何架构。 默认情况下,我的云功能部署为 Node.js 6 应用程序。如何定义我想使用平台已经支持的 Node.js 8?如何更改已用内存量?如何定义环境变量?所有这些都可以通过 cli 命令或从 UI 指定,但将在下一次部署期间被覆盖。是不是有什么我可以添加到我的firebase.json 的东西来允许我将这些值指定为永久的东西?还是我实际上必须使用成熟的 Google Cloud 和部署管理器才能使其正常工作?

【问题讨论】:

  • 我之前已经看过了。这不是我要找的。我创建了一个函数并成功部署了它,但如果我只是输入firebase deploy [--only functions],他们将使用节点 6 而不是 8 和 256MB 内存,而我只需要 128 并且不想为我需要的两倍支付费用。如果我在 AWS 上部署 lambda,我会在 CloudFormation 模板中定义完整的执行环境。我基本上是在 Firebase 中寻找类似这样的模板
  • 您是否尝试卸载当前节点 6 并以管理员权限重新安装节点 8?
  • 喜欢...什么?在我的本地机器上?我从来没有节点 6。我现在只有节点 8。我说的是 Firebase 中的执行环境……我认为我的本地安装与它没有任何关系。至于 Firebase,它是一个配置选项。您实际上必须在部署它们后手动转到您的功能,并分别明确按下您想要使用“Node 8 Beta”的每个功能......或Python:P仍然这些选项都在那里,但您从来没有在部署期间指定它们的选项......这是应该提供它们的地方

标签: firebase google-cloud-functions


【解决方案1】:

您的所有问题都在文档中得到解答。

Set the node version.

通过在 package.json 文件中添加引擎字段来设置版本 它是在初始化期间在您的函数/目录中创建的。 例如,如果您更喜欢仅使用版本 8,请将 package.json 编辑为 添加这一行:

"engines": {"node": "8"}

Specify other runtime config.

要在函数源代码中设置内存分配和超时,请使用 Firebase SDK for Cloud Functions 中引入的 runWith 参数 2.0.0。此运行时选项接受符合 RuntimeOptions 接口的 JSON 对象,该接口定义 timeoutSeconds 和 记忆。例如,此存储功能使用 1GB 的内存和 300 秒后超时:

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   });

Set environment config.

【讨论】:

    猜你喜欢
    • 2020-08-09
    • 2022-09-25
    • 2019-01-18
    • 2020-06-28
    • 2017-07-31
    • 2019-10-17
    • 2019-10-29
    • 1970-01-01
    • 2018-05-19
    相关资源
    最近更新 更多