2015-10-15 109 views
2

我有一個在Google App Engine中運行的應用程序。我應該如何指定應用程序ID?

起初,該應用可能會使用運行:

dev_appserver.py app.yaml 

app.yaml包含這將被用來檢索使用google.appengine.api.app_identity.get_application_id()項目ID字段application

後來去除dev_appserver.py命令和應用程序可以使用以下運行:

gcloud preview app run app.yaml 

運行,這導致進入一個警告,指定在app.yamlapplication已經過時了。

現在app run已棄用,此舉有利於目前恢復的dev_appserver.py。這是否意味着我應該恢復app.yaml中的application字段?

如果我運行gcloud config list它仍然顯示正確的項目ID,但如果未設置application,則調用google.appengine.api.app_identity.get_application_id()返回None

+0

*調用google.appengine.api.app_identity.get_application_id()返回None *是否指定app.yaml中的'application'?如果我沒有指定它,它會返回'None',但如果我這樣做會返回名稱(hi btw) –

+0

我更新了問題以回答您的評論 –

+0

您可以用'dev_appserver.py'指定'-A ' - 這有幫助嗎?儘管如此,我們歡迎來自Google的推薦做法的澄清。所有對開發工具的更改都使這個*非常令人困惑('appcfg','dev_appserver','gcloud','mvn:appengine','mvn:gcloud' ...) – tx802

回答

2

.yaml配置文件的application屬性很好的支持,實際上它是 存在於Modules documentation所有模塊的配置文件的例子。

使用application屬性指定應用程序名稱的可能性要小於對某些/所有相關實用程序使用其他強制-A <APP_ID命令行參數的錯誤。

嘗試上傳的模塊配置文件與application場註釋掉顯示:

appcfg.py: error: Expected -A app_id when application property in file main.yaml is not set. 

這我理解爲暗示,在一個模塊的.yaml文件中使用application屬性將是缺省的/首選的方法。

FWIW,該application屬性也適用於其他配置文件 - 我遇到了一些麻煩,當我說我的多模塊應用,通過將application屬性的dispatch.yaml文件來解決由dispatch.yaml路由。我不記得具體的細節,tho。

+0

我知道這是可能的和方便的在'app.yaml'中指定'application',但我希望看到關於這個的官方聲明不推薦。另外感謝您說'應用程序'也適用於其他配置文件。我不知道這一點,並發現這非常有用。 –

+0

此時,'gcloud預覽應用程序'仍然是測試版:https://cloud.google.com/sdk/gcloud-app#Deploying_app。棄用郵件可能只是一個疏忽。我不會太擔心,尤其是因爲建立/發佈的GAE工具('dev_appserver.py','appcfg.py')沒有提及任何這樣的棄用。 –

相關問題