【问题标题】:Cloud Functions: Store Simple Shared Value Across Instances without Database/VPC?云功能:在没有数据库/VPC 的情况下跨实例存储简单的共享值?
【发布时间】:2020-02-13 23:35:15
【问题描述】:

编写 firebase/google 云函数,需要存储环境值以供多个函数调用使用。该值过期,需要不时重新获取并在生产中更新。

我正在为此寻找一个 轻量级 选项。似乎我能找到的所有建议是你需要启动一个 VPC 并创建一个专用的 Redis 实例......或者你需要创建一个云数据库并将其存储在那里......我只需要保存一个简单的字符串,然后这样做似乎需要大量的基础设施。

有人会认为环境变量会起作用,但你只能在命令行上设置,而且它们只能在部署时刷新......

要存储环境数据,您可以使用 firebase 功能:配置:设置命令。

要获取环境数据,可以使用functions.config()函数。

https://firebase.google.com/docs/functions/config-env

那么,有没有办法在我的代码中更新/设置值?我不能依靠命令行来更新它,就像一个 cron 来更新和重新部署一样。

例如,在 Google Apps 脚本中,我只需使用“缓存”辅助服务并将值存储几个小时。任何可用于云功能的等效缓存,而无需存储在 GCS 或数据库中(它是一个单一的、简单的令牌字符串......)?谢谢。

【问题讨论】:

  • 如何在 Google Cloud Store (GCS) 中创建一个在运行时由您的云函数读取的文件(对象)?可以在每次函数调用时读取它。您将没有需要维护的基础架构,并且更改该值不会比设置新文件值更复杂。缺点是对象的读取成本,但我认为它非常小。
  • 我同意 John Hanley 和 Kolban 的观点。你可以看看相关帖子stackoverflow.com/questions/52687786/…stackoverflow.com/questions/48874686/…

标签: firebase google-cloud-platform google-cloud-functions


【解决方案1】:

Cloud Functions 不提供函数之间任何形式的共享环境变量。您将需要查看外部来源,例如 Cloud Secrets Manager、Cloud Storage 或其中一个数据库。我将 Cloud Storage 和 Datastore 都用于此功能。我现在正在研究 Cloud Secrets Manager,因为我的软件通常也有秘密。

【讨论】:

  • 谢谢你。我什至在一系列服务中都找不到 Cloud Secret Manager。这正是我想要的,因为它们可以通过简单的 API 调用进行更新。
猜你喜欢
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2011-05-05
  • 2022-11-11
  • 2020-11-15
  • 1970-01-01
  • 2011-02-13
  • 2022-08-19
相关资源
最近更新 更多