本页面介绍如何使 Cloud CDN 缓存的内容失效。
例如,如果位于 /images/file.jpg
的文件已缓存且需要设为失效,您可以使用多种方法使其失效,具体取决于您是想将影响局限于该文件还是扩大到更大的范围。在每种情况下,您都可以为所有主机名或仅为一个主机名执行失效操作。
如需详细了解缓存失效操作,请参阅缓存失效操作概览。
准备工作
您可以使用 Google Cloud CLI 或 Google Cloud 控制台来执行失效操作。
您可以通过以下两种方式访问 Google Cloud CLI:
按照使用
apt-get
安装中的说明安装 Google Cloud CLI。如果您之前未使用过 Google Cloud CLI,请先运行gcloud init
进行身份验证。使用 Cloud Shell(已预装
gcloud
)。
如需创建具有所需权限的自定义角色,请参阅创建和管理自定义角色。
如需添加预定义角色,请使用 IAM 快速入门。
仅使一个文件失效
控制台
在 Google Cloud 控制台中,前往 Cloud CDN 页面。
点击相应源站。
点击缓存失效操作标签页。
在关联的负载均衡器部分,选择相应负载均衡器。
在指定要使哪些对象失效下,执行以下操作:
- 在主机部分,除非您想使所有主机名的路径都失效,否则请指定相应主机名。
- 在路径部分,指定相应路径和文件名,例如
/images/file.jpg
。
点击失效。
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 页面。
点击相应源站。
点击缓存失效操作标签页。
在关联的负载均衡器部分,选择相应负载均衡器。
在指定要使哪些对象失效下,执行以下操作:
- 在主机部分,除非您想使所有主机名的路径都失效,否则请指定相应主机名。
- 在路径部分,指定相应路径及用作通配符的星号,例如
/images/*
。
点击失效。
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 页面。
点击相应源站。
点击缓存失效操作标签页。
在关联的负载均衡器部分,选择相应负载均衡器。
在指定要使哪些对象失效下的缓存标记部分,指定要使其失效的一个或多个标记。使用空格或英文逗号分隔各个标记。
点击失效。
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 页面。
点击相应源站。
点击缓存失效操作标签页。
在关联的负载均衡器部分,选择相应负载均衡器。
在指定要使哪些对象失效下,执行以下操作:
- 在主机部分,除非您想使所有主机名的路径都失效,否则请指定相应主机名。
- 在路径部分,使用星号即可,例如
/*
。
点击失效,然后点击确认,以表明您希望 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 页面。
点击相应源站。
点击缓存失效操作标签页。
如需查看失效请求的状态和结果,请点击前往 Cloud Logging。
gcloud
以下是使用 Logging 的示例命令:
gcloud logging read 'protoPayload.methodName="v1.compute.urlMaps.invalidateCache"' \ --limit=10
以下是使用 Monitoring 的示例查询:
protoPayload.serviceName="compute.googleapis.com" protoPayload.methodName="v1.compute.urlMaps.invalidateCache"