【问题标题】:How to differentiate between local deployment and live deployment on Google AppEngine如何区分 Google AppEngine 上的本地部署和实时部署
【发布时间】:2016-11-05 20:09:59
【问题描述】:

我要设置全局变量,例如:

var DEBUG_MODE bool

func init() {
  // set DEBUG_MODE true if localhost (not appspot.com or other domain)
}

如何做到这一点?

【问题讨论】:

  • 您使用哪种编程语言?

标签: google-app-engine go


【解决方案1】:

最简单的方法是使用 appengine.IsDevAppServer() 来判断您的应用是在开发模式(使用 AppEngine SDK)还是实时(在生产中)运行:

func IsDevAppServer() bool

IsDevAppServer 报告 App Engine 应用是否正在开发应用服务器中运行。

或者,您也可以使用appengine.ServerSoftware(),其中包含此信息以及您的应用版本,合并为一个字符串:

func ServerSoftware() string

ServerSoftware 返回 App Engine 发行版本。在生产中,它看起来像“Google App Engine/X.Y.Z”。在开发应用服务器中,它看起来像“Development/X.Y”。

例如你想做什么:

var DEBUG_MODE bool

func init() {
    DEBUG_MODE = appengine.IsDevAppServer()
}

或者在一行中:

var DEBUG_MODE = appengine.IsDevAppServer()

尽管请注意,只要您提及DEBUG_MODE,您就可以直接拨打appengine.IsDevAppServer()。此外,名称 DEBUG_MODE 不符合 Go 命名约定,如果需要导出它应该是 DebugMode(因为你也想从其他包访问它),或者如果它不应该是 debugMode '不需要导出。

查看此相关问题(可能重复?):How to set variables based on project id?

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多