iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
SideProject30

Hugo your Blog and Host your Podcast. 系列 第 21

AWS Cloudfront Invalidation / Forget-me-right-now.

  • 分享至 

  • xImage
  •  

看看我!我體內的怪物已經長這麼大了!

  • 昨天提到我們在部署後,網頁不會馬上反映出修改的結果,這是因為 CDN 的關係,需要等待一段時間才會更新
  • 如果我們的 Domain 是指向 S3 Bucket endpoint,那麼直接的修改都會馬上反應到網頁內容上,但因為我們使用了 CDN 用來加速網頁的反應速度,所以 CDN 所保留的版本不會馬上更新,需要等待到它過期後才會是新的內容
  • 第一,我們可以在 CDN 去調整 TTL 的時間。第二,我們也可以強制現在立刻馬上清除快取,讓 CDN 內容即刻過期而重新向 S3 Bucket 拉取內容

該怎麼做

  • 看看目前的網站內容
  • 新增新的內容並使用 script 部署上去,會發現網站還是沒有更新
    https://ithelp.ithome.com.tw/upload/images/20231006/20152944zuo9cmV50D.png
  • 進入 Cloudfront Distribution 的設定頁面,點擊 Invalidations/ Create invalidation
    https://ithelp.ithome.com.tw/upload/images/20231006/20152944UcwXpuPXP4.png
  • 在 Add object paths 輸入 /*,這樣就會清除所有的快取內容,當然也可以指定特定的路徑,例如 /example/example/example/example/* 等等
    https://ithelp.ithome.com.tw/upload/images/20231006/20152944CaIG1Yx51a.png
  • 按下確認並等待 Invalidation 部署完成
    https://ithelp.ithome.com.tw/upload/images/20231006/20152944fxee4WbHDe.png
  • 重新檢查你的網站,就會看到新的內容囉!
    https://ithelp.ithome.com.tw/upload/images/20231006/20152944wgE4973lBK.png

其他延伸

  • 不建議每次都進行強制清除快取的動作,這有可能會增加你的 AWS 花費
  • 如果不想要每次都登入 AWS console 去操作,可以使用 AWS CLI 進行操作,也會有一樣的效果
aws cloudfront create-invalidation --distribution-id {your_distribution_id} --paths "/example-path"

外出取材

  • 愛丁堡是個小小的城市,比阿姆斯特丹小,不過靠近市區有幾個不錯的健行路線,非常推薦亞瑟王座,可以俯瞰整個新舊城區
    https://ithelp.ithome.com.tw/upload/images/20231006/201529443z2Ne4fLn3.png

上一篇
BuyMeACoffee / We all need some coffee.
下一篇
AWS Lambda / Lambda is your severless solution.
系列文
Hugo your Blog and Host your Podcast. 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言