【问题标题】:How to set env var at runtime or deployment to select the right config如何在运行时或部署时设置 env var 以选择正确的配置
【发布时间】:2020-01-14 17:03:52
【问题描述】:

1.总结问题

我们正在使用一个配置模块(节点),它允许我们设置各种配置选项,例如数据库设置或其他 api 端点设置与我们的 firebase 托管应用程序。

如果 APP_ENV 变量设置为“dev”,则它指向 dev api 的实例和数据库设置,与“test”和“prod”相同。

在容器中运行时,我们只需要一个设置 APP_ENV 的 shell 脚本,然后运行服务器,并选择正确的配置设置。

我们如何使用 Firebase 托管来做到这一点?

使用:https://github.com/lorenwest/node-config

2。提供背景,包括您已经尝试过的内容

查看文档,一无所获。

3.显示一些代码

https://github.com/lorenwest/node-config

4.描述预期和实际结果,包括任何错误消息

预期:部署到 Firebase 并让网络应用根据环境(开发、测试、产品)访问正确的资源(api 端点、数据库设置)。

【问题讨论】:

  • 我不确定我是否理解您的问题。 Firebase 托管不会运行您的任何节点代码。它只提供静态内容,或代理到 Cloud Functions 或 Cloud Run。
  • 很难找到信息...您是否尝试在托管配置中设置标签。键= APP_ENV,值=您的环境。我只在REST api 中找到了这个。但标签一般用于计费报告。您没有找到设置环境变量的任何位置?
  • 当代码运行时,我希望它从配置文件中为它的运行时配置选择正确的部分。配置文件的不同部分是“dev”、“test”、“prod”。 请阅读: github.com/lorenwest/node-config 了解我想要做什么。这是非常典型的企业项目有不同的运行时环境:'dev'、'test'、'prod' 相同的代码,但不同的设置,例如每个运行时实例也有一个单独的:'dev'、'test' ,以及带有“dev”、“test”和“prod”访问密钥的“prod”API端点,所有这些都不同。理解?

标签: firebase google-cloud-platform node-config


【解决方案1】:

我也遇到了类似的问题。
我用NODE_CONFIG_ENV 覆盖NODE_CONFIG

//for production
process.env.NODE_CONFIG_ENV = "default";

//for development
process.env.NODE_CONFIG_ENV = "production";

参考:
[1]https://github.com/lorenwest/node-config/wiki/Environment-Variables

【讨论】:

    猜你喜欢
    • 2018-06-14
    • 2022-01-14
    • 2018-09-24
    • 1970-01-01
    • 2022-06-04
    • 2020-10-28
    • 2022-12-16
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多