简体   繁体   中英

How to differentiate between local deployment and live deployment on Google AppEngine

I want to set global variable, for example:

var DEBUG_MODE bool

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

How to do this?

Easiest is to use use appengine.IsDevAppServer() to tell if your app is running in development mode (using the AppEngine SDK) or live (in production):

 func IsDevAppServer() bool 

IsDevAppServer reports whether the App Engine app is running in the development App Server.

Alternatively you can also use appengine.ServerSoftware() which contains this information along with your App version, merged into one string:

 func ServerSoftware() string 

ServerSoftware returns the App Engine release version. In production, it looks like "Google App Engine/XYZ". In the development appserver, it looks like "Development/XY".

So for example what you want to do:

var DEBUG_MODE bool

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

Or in one line:

var DEBUG_MODE = appengine.IsDevAppServer()

Although note that you could just call appengine.IsDevAppServer() whenever you would refer to DEBUG_MODE . Also the name DEBUG_MODE does not conform to Go naming conventions, it should either be DebugMode if it needs to be exported (because you want to access it from other packages too), or it should be debugMode if it doesn't need to be exported.

See this related question (possible duplicate?): How to set variables based on project id?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM