本頁面說明如何撤銷 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」(快取撤銷) 分頁標籤。
在「Associated load balancers」(相關聯的負載平衡器) 部分,選取負載平衡器。
在「Specify objects to invalidate」(指定要撤銷的物件) 下方,執行下列操作:
- 在「Host」(主機) 部分,除非要撤銷所有主機名稱的路徑,否則請指定主機名稱。
- 在「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」(快取撤銷) 分頁標籤。
在「Associated load balancers」(相關聯的負載平衡器) 部分,選取負載平衡器。
在「Specify objects to invalidate」(指定要撤銷的物件) 下方,執行下列操作:
- 在「Host」(主機) 部分,除非要撤銷所有主機名稱的路徑,否則請指定主機名稱。
- 在「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」(快取撤銷) 分頁標籤。
在「Associated load balancers」(相關聯的負載平衡器) 部分,選取負載平衡器。
在「Specify objects to invalidate」(指定要撤銷的物件) 下方,針對「Cache tag」(快取標記),指定要撤銷的一或多個標記。請使用空格或半形逗號分隔標記。
按一下「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」(快取撤銷) 分頁標籤。
在「Associated load balancers」(相關聯的負載平衡器) 部分,選取負載平衡器。
在「Specify objects to invalidate」(指定要撤銷的物件) 下方,執行下列操作:
- 在「Host」(主機) 部分,除非要撤銷所有主機名稱的路徑,否則請指定主機名稱。
- 在「Path」(路徑) 部分使用星號,例如
/*。
按一下「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」(快取撤銷) 分頁標籤。
如要查看撤銷要求的狀態和結果,請按一下「Go to Cloud Logging」(前往 Cloud Logging)。
gcloud
以下是使用 Logging 的指令範例:
gcloud logging read 'protoPayload.methodName="v1.compute.urlMaps.invalidateCache"' \
--limit=10
以下是使用監控功能的查詢範例:
protoPayload.serviceName="compute.googleapis.com" protoPayload.methodName="v1.compute.urlMaps.invalidateCache"