的App Engine 「模塊」 應用程序引擎模塊是在App Engine中一個新的(實驗性的,容易混淆的命名)功能:https://developers.google.com/appengine/docs/python/modules。正在敦促開發人員將「後端」功能的使用轉換爲使用此新功能。開始在谷歌應用程序引擎
似乎有是兩種方法啓動的模塊的實例:向(在http://modulename.appname.appspot.com
即對於appname
應用和modulename
模塊)發送一個HTTP請求給它,或調用google.appengine.api.modules.start_module()
。
的簡單方法
最簡單的方式開始新模塊的事例似乎是創建一個HTTP請求。然而,在我的情況下,這導致只有兩個結果,這兩者都不是我想要的東西:
如果我用我的應用程序定義的後端,即
http://backend.appname.appspot.com
的名字,請求被正確地路由到後端並正確拒絕(因爲後端訪問被默認定義爲私有)。即使使用隨機字符串作爲模塊名稱(如
http://sdlsdjfsldfsdf.appname.appspot.com
),其他任何結果都會將請求路由到默認模塊的唯一前端實例。這甚至捏造的實例ID持有如在http://99.sdlsdjfsldfsdf.appname.appspot.com
,等等。當然的情況下(這是問題)的實際名字我的模塊爲好。
通過API
文檔開始說,調用與模塊和版本的名稱應該引起指定模塊的指定版本啓動。但是,無論何時使用有效參數調用此函數,我都會得到一個UnexpectedStateError
。
因爲我不能得到這個工作,我不知道是否有一些微妙的文檔可能不會提及事務的不幸國家。我的設置非常簡單,所以我想知道這是否是一個普遍存在的問題,有人找到了解決方案。
我看到模塊的方式,他們不是開始的東西。相反,它是將您的應用分成不同邏輯單元的一種方式,例如您的應用的網頁和API部分。因此,查看模塊的一種方式是在一個應用程序中的多個應用程序共享資源,如數據存儲區和內存緩存區。在[Python示例](https://github.com/GoogleCloudPlatform/appengine-modules-helloworld-python)中,沒有提到啓動模塊。他們只是有不同的網址。 – dlebech
但是在管理儀表板中,您可以查看已爲您的應用啓動的實例,並且每個實例都與模塊和版本相關聯。 (事實上,你選擇一個模塊和一個版本,然後可以查看與該對相關聯的任何實例。)當你查看實例時,你可以關閉它們......所以它們以某種方式開始。 – Jeremy
實例在向您的應用程序發出請求時自動啓動。在模塊的情況下,我的猜測是它的工作原理是相同的:當一個模塊提供的url請求發生時,模塊的實例會自動啓動。當然,您可以設置一些空閒實例(在應用程序設置下),您也可以按需啓動實例(某種程度上),但通常會自動發生並且不是特定於模塊的事件。再次,這是基於我的理解,所以我可能是錯的。 – dlebech