首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gcloud cli为云函数设置配置变量

如何使用gcloud cli为云函数设置配置变量
EN

Stack Overflow用户
提问于 2020-06-01 13:41:29
回答 1查看 443关注 0票数 0

我的Firebase默认服务帐户( xxxx@appspot.gserviceaccount.com )已删除,无法恢复。

因此,我创建了不同的服务帐户,现在我必须使用gcloud CLI部署功能

gcloud beta functions deploy FUNCTION_NAME --service-account=NEW_SERVICE_ACCOUNT命令。

如何使用gcloud CLI设置firebase配置变量,我可以通过functions.config()访问它。

EN

回答 1

Stack Overflow用户

发布于 2020-06-01 20:11:27

使用Cloud Function时,您可以在Node中定义可以像这样使用的环境变量

代码语言:javascript
复制
const val = process.env.KEY

要将此KEY=val设置为云函数,您可以使用can use the env vars setter parameter

为了重用Firebase functions.config(),通过查看the source code,它应该是这样工作的(我没有测试)

described in the retrieve part of the Firebase doc的形式为您的配置定义一个

代码语言:javascript
复制
{
  "someservice": {
    "key":"THE API KEY",
    "id":"THE CLIENT ID"
  }
}

  1. 将其设置为inline,并将其存储到CLoud Functions file format中。环境变量的键必须为FIREBASE_CONFIG。结果必须如下所示(例如,将其命名为config.yaml )

代码语言:javascript
复制
FIREBASE_CONFIG: '{"someservice":{"key":"THE API KEY","id":"THE CLIENT ID"}}'

  1. 将文件环境变量添加到云函数

代码语言:javascript
复制
gcloud functions deploy --env-vars-file=config.yaml ....

注意:为什么使用文件?

这个问题问得很好,因为您还可以使用--set-env-vars参数。2个问题

  1. 首先,您需要内联内容并跳过双引号"字符。为此,如果您没有逗号,,您可以执行--set-env-vars=TEST=$(echo "'$(cat config.json | sed -z 's/\n//g')'")
  2. The first solution works ONLY。使用逗号时,gcloud命令将丢失,即使您将json内联内容设置在简单引号'之间,它也会将其视为新的env var定义并失败。

因为我还没有测试过,所以我很想知道这个解决方案是否有效!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62126316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档