【问题标题】:How to set GAE environment-specific environment variables?如何设置 GAE 环境特定的环境变量?
【发布时间】:2014-07-05 10:23:36
【问题描述】:

我在 Go 中有一个使用 martini 的 GAE 应用程序。我需要能够设置 MARTINI_ENV 环境变量来告诉 martini 它应该使用生产设置进行初始化。根据 Python 文档you can set environment variables in the app.yaml。我在Go docs 中没有看到任何提及这一点,但我猜它应该是一样的。

我需要能够将MARTINI_ENV 环境变量设置为production,但我只想在实际生产时这样做(即!appengine.IsDevAppServer())。有没有办法告诉app.yaml 只在非开发服务器上运行时这样做?

【问题讨论】:

  • 你试过看看它是否有效吗?
  • 我没有,但显然我应该有。根据@beat-richartz 的说法,GAE 上的 Go 应用程序支持设置环境变量。

标签: google-app-engine go


【解决方案1】:

Go 中的 GAE 没有设置环境变量的概念,因为这些变量不会在您的 GAE 实例之间共享。

由于martini.Env 是一个导出变量,尽管您可以使用自己的逻辑对其进行设置。有多种方法可以做到这一点:

  1. MARTINI_ENV 不存在时默认设置 martini.Env 为生产环境
  2. 将您自己的config.yaml 添加到您的存储库中,对其进行解析并从那里设置martini.Env
  3. 使用 godotenv 之类的库及其 Read 函数,它将读取您的点文件,而不是将其加载到环境中。

【讨论】:

  • 我不应该假设环境变量只适用于 GAE-Go。感谢您的替代想法。我决定在我的init() 中使用这个 sn-p:if appengine.IsDevAppServer() { martini.Env = martini.Dev } else { martini.Env = martini.Prod }
【解决方案2】:
猜你喜欢
  • 2015-10-14
  • 1970-01-01
  • 2014-09-29
  • 2020-02-14
  • 2014-12-17
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多