iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Cloud Native

2023 年了,一起來學 CDN - 你也可以瞭解的 CloudFront 系列 第 5

Day 05 - 網頁內容更新,CDN沒跟著變,怎麼辦?

  • 分享至 

  • xImage
  •  

網頁內容更新,CDN沒跟著變,怎麼辦?

一個正常提供服務的網站,時常會有內容更新的需求。
有一天,我們希望網頁看來活潑一點,加上底圖。加上圖片(banner.png) 後你測試了自己的 HTTP Server,很棒,圖成功出現在想的位置了。
https://ithelp.ithome.com.tw/upload/images/20230907/20162502tdZd4sKZa1.png

  • 於是我很開心的點開 CDN 上面的頁面,咦,怎麼還是一樣?
    https://ithelp.ithome.com.tw/upload/images/20230907/20162502FxpgAfQr71.png

揉揉眼睛,再重載入一次,怎麼還是一樣?

是不是 CloudFront 出問題了,沒更新資料?

沒更新資料,是對的。但沒出問題。
讓我們一起來看先前在 Day-03 中做的設定.

  - a. Cache policy: CachingOptimized
  - b. Query strings: Origin request policy - optional: (留空)
  - c. Response headers policy: (留空)
  - d. Additional settings: (留空)

當時選的是 CachingOptimized,參考 AWS 的文件,這設定代表:

最小 TTL:1 秒。
最長 TTL:31,536,000 秒 (365 天)。
預設 TTL:86,400 秒 (24 小時)。
快取金鑰中包含的標頭:沒有明確包含任何標頭。包含標準化的 Accept-Encoding 標頭,因為已啟用快取壓縮物件設定。如需詳細資訊,請參閱壓縮支援。
快取金鑰中包含的 Cookie:無。
快取金鑰中包含的查詢字串:無。
快取壓縮物件設定:已啟用。如需詳細資訊,請參閱壓縮支援。

這段是說,以我們的設置,CloudFront 會將內容緩存 86400秒(預設 TTL)。
這時如果我們要看到更新的內容的話,要去清除緩存(Invalidation)
所以我們可以這樣做

1. 登入 CloudFront Console
2. 點選目標 distribution
3. 點選 'Invalidation'
4. 輸入對應網址,或者輸入 '/*',讓 CloudFront 捨棄目前的所有已經緩存內容。

檢查頁面,果然已經更新了啊!
https://ithelp.ithome.com.tw/upload/images/20230907/20162502d4SQvuJx1T.png
等等,這樣好像有點「搞剛」? 有沒有比較簡單/方便的方法呢?

明日繼續 :)

上一篇
Day 04 - 開始動手,以 CloudFront 作為自己的第一個 CDN 方案(Part II) - 如何量測
下一篇
Day 06 - 可以不要一直清 Cache 嗎?
系列文
2023 年了,一起來學 CDN - 你也可以瞭解的 CloudFront 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言