如何從 CloudFront 移除快取檔案?
上次更新日期:2022 年 5 月 27 日
我更新了原始伺服器上的檔案。不過,Amazon CloudFront 仍在提供舊內容給我的使用者。為什麼會發生這種情況,而我又該如何清理快取?
簡短描述
根據預設,CloudFront 會根據原始伺服器回應中的快取控制標頭,以及 CloudFront 分配快取行為中的最小、最大值和預設 TTL 值 ,在邊緣節點中快取回應。
根據您設定的值,CloudFront 會快取檔案直到快取過期為止。若要立即提供更新的檔案,請讓檔案失效,以便從 CloudFront 的快取中移除物件。
備註:如果物件使用 Cookie、查詢字串或標頭來變更回應,您無法讓此類物件的特定版本失效。失效會移除物件的所有版本。
解決方案
重要:使檔案失效可能會產生費用。如需詳細資訊,請參閱支付檔案失效費用。
使用 AWS Console 讓檔案失效
若要使用 AWS Console 讓檔案失效,請參閱使用主控台讓檔案失效。
使用 AWS CLI 讓檔案失效
備註:如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確保您使用的是最新版本的 AWS CLI。
若要使用 AWS CLI 讓檔案失效,請使用 create-invalidation 命令:
aws cloudfront create-invalidation --distribution-id EDFDVBD6EXAMPLE --paths "/example-path/index.html"
備註:請將 EDFDVBD6EXAMPLE 替換為提供檔案的分配 ID。
若要查找目前的失效狀態,請使用 get-invalidation 命令:
aws cloudfront get-invalidation --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
備註:請將 EDFDVBD6EXAMPLE 替換為提供檔案的分配 ID。
若要在完成失效前輪詢其狀態,請使用下列命令:
aws cloudfront wait invalidation-completed --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
備註:請將 EDFDVBD6EXAMPLE 替換為提供檔案的分配 ID。