2013-05-31 134 views
0

我最近升级到最新版本的Go SDK(1.8.0),现在当我调用os.Getenv(“SERVER_SOFTWARE”)时,我得到一个空白字符串。我正在使用它来确定我是否位于本地开发服务器或实时环境中,而且我不知道有任何其他检查方式。所以任何一个问题的答案都会使我很好:1)为什么现在返回一个空字符串?或2)是否有其他方法来检查我是否在开发服务器上?为什么os.Getenv(“SERVER_SOFTWARE”)为我返回空白字符串?

+0

本地开发服务器和实时环境是否都返回空白字符串? –

+0

是的,这里是我在现场的所有环境变量:“TZ = UTC”;“PWD =/base/data/home/apps/s〜[MY_APP_ID]/[MY_APP_VERSION]”;查看我对peterSO对我的开发站点变量的回答的评论。 –

回答

0

所以...我一直在发现很多“嘿,我很笨,还有更好的方法”最近回答了我的问题。这似乎是其中之一。所以,如果我支持一个步骤,并解决我试图回答的真正问题,那么一切都变得简单多了。我只是试图确定我是否在开发服务器或活动服务器上。我正在研究一个完全不相关的问题,并发现:appengine.IsDevAppServer()。这是完整的文件:https://developers.google.com/appengine/docs/go/reference#IsDevAppServer,我从来没有看到它,直到现在。

0

使用os.Environ函数可查看为开发服务器设置了哪些环境变量。看看它们中的任何一个是否可以区分开发和生产服务器。例如,APPLICATION_ID环境变量。

The Go Development Server

Accessing Application IDs in the Development Web Server

开发服务器模拟生产App Engine服务。 这样做的一种方法是将一个字符串(dev~)预先加入到APPLICATION_ID 环境变量中。

+0

谢谢,peterSO,我感觉我越来越接近了,我可以用我用os.Environ()函数发现的方法来做到这一点......但没有任何常见的嫌疑人出现,而我对使用它们中的任何一个都不是很满意。当我输出所有内容时,我会得到:“GOROOT = C:\ Program Files \ Google \ google_appengine \ goroot”;“SYSTEMROOT = C:\ windows”;“PWD = C:\ PATH_TO_MY_APP”;“TZ =世界标准时间”; –

+0

我想可以使用PWD变量,但对我来说这只是一种创可贴的解决方案,如果将来有任何其他开发人员在这方面开展工作,那么这种方法就行不通。就像我说的那样,没有任何通常的嫌疑犯存在,比如APPLICATION_ID或者SERVER_SOFTWARE。有什么方法可以添加它们吗?当我启动开发服务器时,我错过了一些标准的命令行选项(我现在使用的全部是:dev_appserver.py“C:\ PATH_TO_MY_APP”)? –

相关问题