2017-04-15 76 views
1

我運行在谷歌應用程序引擎的Node.js應用程序,使用下面的命令來部署我的代碼:gcloud應用部署不會刪除以前的版本

gcloud app deploy --stop-previous-version 

我期望的行爲是所有實例上運行以前版本被終止,但他們似乎總是堅持。有什麼我失蹤?

我意識到他們沒有收到流量,但我仍然爲他們付錢,他們造成一些背景的遙測噪音。有沒有更好的方法來運行這個命令?

gcloud app instances list的示例輸出: enter image description here 正如你所看到的,我有兩個不同的版本在運行。

+0

很難根據您的信息確切地說出問題所在。 – Hedam

回答

2

由於錯誤的靈活實例未被隨後的部署清除,我們在不到30天的時間內意外地通過我們的免費Google App Engine信用點吹噓。當我們將它定位爲原因時,它已經放大了四個基本閒置的同時發生的事件。

TL;博士:使用部署到指定版本名稱時--version標誌。相同版本的現有實例將在您下次部署時將 替換爲

那讓我失望了,那是--stop-previous-version。這是我迄今發現的:

--stop-previous-version似乎不再受支持。它在上提到,標記gcloud app deploy reference page上,但是如果您查看列出所有標誌的頁面頂部,則無法找到它。

我試着部署該標誌設置看看會發生什麼,但它似乎沒有效果。一個新版本仍然被創建,我仍然必須進入並手動刪除舊的實例。

gcloud-maven-plugin repo上有一個開放的Github問題,專門將此視爲該插件的問題,但問題似乎已被忽略。

此時在這一點上,我們最好的辦法是增加--version=staging或任何以gcloud deploy app。該標誌的參考文件似乎表明,它會取代現有的實例共享該「版本」:

--version =版本,-v版本

應用程序的版本將被創建或通過此部署替換。如果您未指定版本,則會爲您生成一個版本。

(重點煤礦)

此外,谷歌自己的reference documentation on app.yaml(鏈接對Python的文檔,但它仍然是相關的)特別提出的--version標誌作爲「首選」的方式進行部署時指定一個版本:

推薦的方法是從你的app.yaml文件中刪除版本元素,而是使用一個命令行標誌,以指定版本ID