我通過將資產推送到AWS S3並通過CloudFront提供文件來部署單頁應用程序網站。根據this answer,我不可能在自己的域下使用SSL直接從S3提供文件,所以如果我想以這種方式提供文件,我沒有選擇使用CloudFront的選擇。AWS CloudFront根對象更新延遲
當我重新部署時,我生成一個新的有時間戳的根HTML文件(它本身鏈接到更新的JS和CSS包),將它與其他所有內容一起推送到S3,然後使該新文件成爲新的默認根對象用於通過AWS的CloudFront分配。這可以防止CloudFront緩存所有內容並隱藏更新。
問題是,有時CloudFront需要很長時間來更新根對象。在我寫這篇文章的時候,我每隔60秒就會刷新一次,等待重要的改變來實現產量。 CloudFront通過Web控制檯顯示正確(最新)的根對象,但它也顯示「狀態:進行中」。
有時,這種延遲幾乎沒有引人注意,而其他時間則相當長。今天它接近一個小時的延遲。
我該如何避免這種情況?我願意對使用S3和CloudFront的這種部署方法進行更改,或者切換到已知可更好地處理此用例的替代平臺。
更改根對象後,在'/'上執行緩存失效。更改根對象不會刪除緩存中對'/'的舊請求。 –
有趣的邁克爾,我會試試看。謝謝! –