我的項目是一個簡單的JSON + REST api服務器,它讀取/寫入到ndb並用JSON字典響應。我的項目中沒有backends.yaml文件。而我的app.yaml的內容是:沒有任何後端的後端實例小時數加起來
application: my-app
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /api/v1/.*
script: gprofile.application
libraries:
- name: webapp2
version: "2.5.2"
- name: ssl
version: latest
- name: jinja2
version: latest
唯一的其他YAML在我的項目文件中有一對夫婦的自動生成index.yaml中的文件。 但我後端堆積如山。按照儀表板,我每小時累積8個後端實例小時,即我以某種方式運行8個後端實例。在我的項目目錄運行appcfg.py -v backends . list
給出了下面的輸出:
Application: my-app
Warning: This application uses Backends, a deprecated feature that has been replaced by Modules, which offers additional functionality. Please convert your backends to modules as described at: https://developers.google.com/appengine/d
Host: appengine.google.com
2014-11-05 20:23:29,571 INFO appengine_rpc_httplib2.py:268 Too many retries for url https://appengine.google.com/api/backends/list?app_id=my-app
Error 500: --- begin server output ---
Server Error (500)
A server error has occurred.
--- end server output ---
還有一個我注意到奇怪的事情是沒有額外的YAML文件,這些文件inspite,我仍然有定義(除了默認的模塊)3個額外的模塊。其中一個標記爲Resident
,這意味着我無法從儀表板關閉它。
任何人都可以解釋我是如何定義沒有任何額外yaml文件的額外模塊,以及爲什麼我沒有backend.yaml後端帳單。
更新1:我能夠通過在「計算> App Engine>版本」下的儀表板中手動刪除未定義的模塊來刪除未定義的模塊。仍然無法弄清楚他們是如何到達那裏的。
更新2:我在開發過程中早些時候定義了一些後端。但是yaml以及相關的代碼已經被刪除。即使在更新我的項目之後,是否有可能舊的後端仍然存在?如果是的話,當appcfg甚至不能列出它們時,我將如何刪除它們。
是的,它默認採用默認模塊。我能夠刪除額外的模塊(在我的問題更新)。 – 2014-11-05 17:58:09
我認爲問題是從源文件中刪除yaml文件並不意味着刪除了該功能。例如。我注意到一個冗餘的任務隊列,即使沒有queue.yaml,也意識到某些其他的dev在某個時候添加了一個queue.yaml,然後刪除了queue.yaml文件。爲了解決這個問題,我不得不重新添加一個空的queue.yaml文件,任務隊列從儀表板中消失。我猜測額外的模塊也是由同一個開發人員在某個時候添加的,然後就被刪除了(我無法證實這一點,因爲我們之前沒有任何版本控制) – 2014-11-05 18:01:41