如何区分Google AppEngine上的本地部署和实时部署

时间:2016-07-04 07:15:18

标签: google-app-engine go

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

var DEBUG_MODE bool

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

怎么做?

1 个答案:

答案 0 :(得分:3)

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

func IsDevAppServer() bool
     

IsDevAppServer报告App Engine应用程序是否在开发App Server中运行。

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

func ServerSoftware() string
     

ServerSoftware返回App Engine发行版。在制作中,它看起来像" Google App Engine / X.Y.Z"。在开发应用程序服务器中,它看起来像"开发/ X.Y"。

例如,你想做什么:

var DEBUG_MODE bool

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

或者在一行中:

var DEBUG_MODE = appengine.IsDevAppServer()

虽然请注意,只要您引用appengine.IsDevAppServer(),就可以致电DEBUG_MODE。名称DEBUG_MODE也不符合Go命名约定,如果需要导出它,它应该是DebugMode(因为你也想从其他包中访问它),或者它应该是debugMode。 1}}如果它不需要导出。

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