本頁面說明如何撤銷 Cloud CDN 快取的內容。
舉例來說,如果位於 /images/file.jpg
的檔案已快取,且需要失效,您可以使用多種方法來讓檔案失效,具體取決於您想影響的範圍是該檔案本身,還是更廣泛的範圍。在每個情況下,您可以針對所有主機名稱或僅針對單一主機名稱撤銷。
如要進一步瞭解快取撤銷,請參閱「快取撤銷總覽」。
事前準備
您可以使用 Google Cloud CLI 或 Google Cloud 控制台執行撤銷作業。
您可以透過下列兩種方式存取 Google Cloud CLI:
按照「使用
apt-get
安裝」中的操作說明安裝 Google Cloud CLI。如果您之前沒有使用過 Google Cloud CLI,請先執行gcloud init
進行驗證。使用已預先安裝
gcloud
的 Cloud Shell。
如要建立具有必要權限的自訂角色,請參閱「建立及管理自訂角色」。
如要新增預先定義的角色,請使用 IAM 快速入門指南。
只讓單一檔案失效
主控台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下來源。
按一下「Cache invalidation」(快取撤銷) 分頁標籤。
在「相關聯的負載平衡器」中,選取負載平衡器。
在「指定要撤銷的物件」下方,執行下列操作:
- 針對「主機」,請指定主機名稱,除非您想針對所有主機名稱撤銷路徑。
- 針對「Path」,指定路徑和檔案名稱,例如
/images/file.jpg
。
按一下 [Invalidate] (撤銷)。
gcloud
使用 gcloud compute url-maps invalidate-cdn-cache
指令。
如要只指定要失效的一個檔案,請使用 --path
標記搭配檔案名稱。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \ --path "/images/file.jpg"
將 URL_MAP_NAME
替換為網址對應的名稱。如要列出網址對應,請使用 gcloud compute url-maps list
指令。
如要只針對單一主機失效,請新增 --host
標記,例如 --host host1.com
。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \ --host host1.com \ --path "/images/file.jpg"
根據預設,Google Cloud CLI 會等到失效作業完成。如要在背景執行無效化作業,請在指令列中附加 --async
。
API
請使用 urlMaps.invalidateCache
方法。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
更改下列內容:
PROJECT_ID
:您的 Google Cloud 控制台專案 IDURL_MAP_NAME
:網址對應項目的名稱
如要指定要失效的檔案,請使用下列 JSON 要求主體範例:
{ "path": "/images/file.jpg" }
如要只讓單一主機的檔案失效,請使用以下 JSON 要求主體範例:
{ "host": "host1.com", "path": "/images/file.jpg" }
讓整個目錄失效
主控台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下來源。
按一下「Cache invalidation」(快取撤銷) 分頁標籤。
在「相關聯的負載平衡器」中,選取負載平衡器。
在「指定要撤銷的物件」下方,執行下列操作:
- 針對「主機」,請指定主機名稱,除非您想針對所有主機名稱撤銷路徑。
- 針對「Path」,請指定路徑和星號做為萬用字元,例如
/images/*
。
按一下 [Invalidate] (撤銷)。
gcloud
使用 gcloud compute url-maps invalidate-cdn-cache
指令。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \ --path "/images/*"
將 URL_MAP_NAME
替換為網址對應項目的名稱。
如要只針對單一主機失效,請新增 --host
標記,例如 --host host1.com
。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \ --host host1.com \ --path "/images/*"
API
請使用 urlMaps.invalidateCache
方法。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
更改下列內容:
PROJECT_ID
:您的 Google Cloud 控制台專案 IDURL_MAP_NAME
:網址對應項目的名稱
如要指定要停用的目錄,請使用下列 JSON 要求主體範例:
{ "path": "/images/*" }
如要只讓單一主機的資料夾失效,請使用下列 JSON 要求主體範例:
{ "host": "host1.com", "path": "/images/*" }
依據快取標記撤銷
主控台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下來源。
按一下「Cache invalidation」(快取撤銷) 分頁標籤。
在「相關聯的負載平衡器」中,選取負載平衡器。
在「指定要撤銷的物件」下方,針對「快取標記」,指定要撤銷的一或多個標記。請使用空格或半形逗號分隔代碼。
按一下 [Invalidate] (撤銷)。
gcloud
使用 gcloud beta compute url-maps invalidate-cdn-cache
指令。
gcloud beta compute url-maps invalidate-cdn-cache URL_MAP_NAME \ --tags=TAGS
更改下列內容:
URL_MAP_NAME
:網址對應項目的名稱TAGS
:標記或以半形逗號分隔的標記清單;您最多可以指定 10 個此標記
舉例來說,如果後端回應包含 Cache-Tag
標頭,且標頭含有不明確的使用者 ID (例如 UUID4 或其他形式的 GUID),您可以使用 tag
標記,讓特定使用者的所有內容失效。此外,如要只讓某個主機的內容失效 (例如測試環境),請新增 --host
標記。
gcloud beta compute url-maps invalidate-cdn-cache url_map_1 \ --tags="1115b8f4-f804-4861-9629-8cb9aecdeeb3" \ --host="host1.com"
API
請使用 urlMaps.invalidateCache
方法。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
更改下列內容:
PROJECT_ID
:您的 Google Cloud 控制台專案 IDURL_MAP_NAME
:網址對應項目的名稱
如要指定無效的快取標記,請使用下列 JSON 要求主體範例:
{ "cacheTags": [ "tag1", "tag2" ] }
您可以指定單一標記或以半形逗號分隔的標記清單。
如要只針對單一主機使用快取標記,請使用下列 JSON 要求主體範例:
{ "host": "host1.com", "path": "tag1,tag2" }
撤銷所有內容
雖然您可以讓所有內容失效,但這可能會帶來風險。請先仔細評估需求,再繼續操作。
主控台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下來源。
按一下「Cache invalidation」(快取撤銷) 分頁標籤。
在「相關聯的負載平衡器」中,選取負載平衡器。
在「指定要撤銷的物件」下方,執行下列操作:
- 針對「主機」,請指定主機名稱,除非您想針對所有主機名稱撤銷路徑。
- 如要指定路徑,請使用星號,例如
/*
。
按一下「Invalidate」(失效),然後點選「Confirm」(確認),表示您希望 Cloud CDN 將所有內容設為失效。
gcloud
使用 gcloud compute url-maps invalidate-cdn-cache
指令。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \ --path "/*"
更改下列內容:
URL_MAP_NAME
:網址對應項目的名稱/*
:您要讓其失效的網址路徑,不含主機名稱;路徑可使用明確的檔案名稱或星號做為萬用字元
如要只針對單一主機失效,請新增 --host
標記,例如 --host host1.com
。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \ --host host1.com \ --path "/*"
API
請使用 urlMaps.invalidateCache
方法。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
更改下列內容:
PROJECT_ID
:您的 Google Cloud 控制台專案 IDURL_MAP_NAME
:網址對應項目的名稱
如要指定無效網址路徑,請使用下列 JSON 要求主體範例:
{ "path": "/*" }
如要讓某個主機的網址路徑失效,請使用下列 JSON 要求主體範例:
{ "host": "host1.com", "path": "/*" }
查看無效化要求的狀態
Cloud CDN 會針對每個無效作業產生兩個記錄行,一個是在接受無效作業時,另一個是在完成時。第一個包含主機和路徑資訊。
如要查看失效要求的狀態,或是在清單瀏覽最近提交的要求,請使用 Cloud Logging 或 Cloud Monitoring。
主控台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下來源。
按一下「Cache invalidation」(快取撤銷) 分頁標籤。
如要查看撤銷要求的狀態和結果,請按一下「前往 Cloud Logging」。
gcloud
以下是使用記錄功能的範例指令:
gcloud logging read 'protoPayload.methodName="v1.compute.urlMaps.invalidateCache"' \ --limit=10
以下是使用監控功能的查詢範例:
protoPayload.serviceName="compute.googleapis.com" protoPayload.methodName="v1.compute.urlMaps.invalidateCache"