2013-05-31 132 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」)? –

相關問題