dpqy77560 2016-07-04 07:15
浏览 37
已采纳

如何在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?

  • 写回答

1条回答 默认 最新

  • douwojiao5919 2016-07-04 09:55
    关注

    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/X.Y.Z". In the development appserver, it looks like "Development/X.Y".

    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?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?