是否有可能得到你正運行在哪種情況下的信息?我想輸出一個簡單的標識符,以便爲日誌記錄目前運行代碼的實例。App Engine的實例ID
3
A
回答
3
由於沒有語言的標籤,看到您的個人資料的歷史,我假設你使用GAE/J?
在這種情況下,實例ID信息被嵌入到環境中的一個屬性,你可以通過ApiProxy.getCurrentEnvironment()
方法得到。然後,您可以使用密鑰BackendService.INSTANCE_ID_ENV_ATTRIBUTE
從結果地圖中提取實例ID。
即使密鑰存儲在BackendService,這種方式也將努力爲前端實例。因此,在總結,下面的代碼會爲你獲取實例ID:
String tInstanceId = ApiProxy.getCurrentEnvironment()
.getAttributes()
.get(BackendService.INSTANCE_ID_ENV_ATTRIBUTE)
.toString();
請記住,這種做法是相當受谷歌無證,並且可能隨時更改,恕不警示未來。但由於您的用例僅用於日誌記錄,我認爲現在就足夠了。
1
隨着Modules來臨,就可以得到當前實例ID在a more elegant way:
ModulesServiceFactory.getModulesService().getCurrentInstanceId()
1
更妙的是,你應該換一個嘗試捕捉呼叫,使其正常工作在本地了。
導入此
import com.google.appengine.api.modules.ModulesException;
import com.google.appengine.api.modules.ModulesServiceFactory;
然後你的方法可以運行此
String instanceId = "unknown";
try{
instanceId = ModulesServiceFactory.getModulesService().getCurrentInstanceId();
} catch (ModulesException e){
instanceId = e.getMessage();
}
沒有嘗試捕捉,你會在本地運行時得到一些嚴重錯誤。
我一直在使用端點與發佈 - 訂閱和其他位混合時,試圖確定爲什麼有些事情不同的方式工作,以確定其是否涉及到新實例發現這個調試超級有用。
相關問題
- 1. Google App Engine實例小時
- 2. 的App Engine通過實例本身
- 3. 修改Google App Engine實體ID?
- 4. App Engine - 開放實例太多
- 5. 跨App Engine實例推送數據
- 6. 什麼是Google App Engine實例?
- 7. 使用Firebase縮放App Engine實例
- 8. Google App Engine實例崩潰,ErrorCode 121
- 9. 在Google App Engine中啓動Django實例
- 10. 谷歌App Engine的例子
- 11. Facebook App Credits在App Engine上的示例?
- 12. 爲什麼我的Google App Engine實例ID不能包含單詞「admin」?
- 13. Google App Engine CardDav示例
- 14. Google App Engine:com.google.appengine.api.labs.modules.ModulesException:此實例沒有有效的實例ID
- 15. 使用實體 - Google App Engine
- 16. App Engine JPA實體關係
- 17. 查詢Google App Engine中的唯一ID
- 18. App Engine的前端/後端實例 「同時API調用限制」
- 19. HRD遷移後運行的App Engine實例太多
- 20. Google App Engine和具有多個實例的數據複製
- 21. 未使用的Google App Engine實例超出配額
- 22. 的Node.js教程觸發所有App Engine虛擬機實例
- 23. 是訪問數據存儲所需的App Engine實例嗎?
- 24. Google App Engine實例的內存使用情況
- 25. Google App Engine中常駐後端實例的可用性
- 26. 限制每個App Engine實例的任務請求數
- 27. 無法從Eclipse的本地App Engine實例連接到BigQuery
- 28. 如何完全刪除我的App Engine實例?
- 29. 如何(在Python中)獲取App Engine實例的長形式instance_id?
- 30. 沒有模塊的App Engine App Engine中
的可能重複[我如何獲得應用程序引擎前端服務器的實例ID?](http://stackoverflow.com/questions/11731719/how-do-i-get-an-instance-id-of-應用程序引擎前端服務器) – 2013-02-27 10:03:00
@PaulC:並非真正重複,該問題的主體涉及將請求轉發到特定應用引擎前端服務器的方式。 – 2013-02-27 11:39:16
當然,第一個答案是這樣說的:app_instance_id = os.environ.get('INSTANCE_ID'),這是我認爲OP需要知道的。 – 2013-02-27 11:59:10