我們目前使用Capifony和ec2-capify插件來將我們的代碼部署到ELB背後的一組實例。我們還使用CloudFront管理靜態資產,我們使用查詢字符串(例如?v1或?v2)進行版本管理。如何在進行滾動部署時確保Cloudfront具有正確的資產版本?
我們偶然發現了一個關於更新資產版本的罕見問題。如果當前版本爲V1,和我們做一次V2一臺服務器的滾動部署,然後會出現以下情況有關V2請求框中:
- CloudFront的是問v2和失誤。
- CloudFront前往ELB並要求提供資產。
- ELB選擇一個服務器,併發生以下兩件事之一:Cloudfront碰到新部署的服務器之一(服務v2),或者碰到舊服務器(v1)。
- 無論採用哪種方式,Cloudfront都會將內容存儲爲v2。在遇到v1服務器的情況下,內容不正確。
我們當前的解決方案是我們必須用新的資產版本進行另一次部署。
有沒有辦法迫使Cloudfront通過ELB只命中我們更新的(v2)服務器之一,並忽略v1的?
或者我錯過了一個可以解決問題的備用解決方案嗎?
你有沒有找到一個好的方法嗎? –
有類似的問題,但由於資產版本在名稱中,因此當使用僅有v1的舊服務器時,客戶端將獲得404。 – giorgiosironi