背景介绍
若您的源站为腾讯云对象存储 COS,当源站有同名文件更新或者违规资源需要删除时,通常需要同步将资源从 EdgeOne 节点删除,避免用户仍访问到旧的资源或者违规内容。但是清除缓存需要您在 COS 上更新或删除文件后,人工进入 EdgeOne 控制台或者调用 API 接口提交需清除缓存的 URL,该方式容易遗漏且可能因为人工操作延迟造成未及时执行清除动作。
自动清除缓存可以帮助您在文件上传至腾讯云 COS 后,由腾讯云 SCF 自动检测并调用 EdgeOne 的清除缓存 API 接口自动完成节点的缓存清除,保障您的文件更新或删除后,用户可立即访问到最新的资源,提升用户体验。
注意:
腾讯云对象存储 COS 为收费功能,使用中可能产生的费用由腾讯云 COS 收取,具体收费详情请参考对象存储计费概述。 云函数 SCF 为收费功能,使用中可能产生的费用由云函数 SCF 收取,具体收费详情请参考云函数计费概述。 适用场景
场景1:同名文件更新
文件上传至腾讯云 COS 后,由于文件内容有更新,重新上传同名文件至 COS,在 CDN 缓存过期前,希望用户可以立即访问到最新的资源。
场景2:违规文件删除
上传至 COS 的文件,可能存在内容不合规等问题需要将该文件从 COS 存储桶中删除,在 CDN 缓存过期前,希望用户不再能访问到该资源。
操作步骤
示例场景
假设您是一家游戏厂商,已将站点域名 www.example.com
接入到 EdgeOne 加速,源站为腾讯云 COS,地址为:purge-cos-1251558888.cos.ap-guangzhou.myqcloud.com
。因为有多款游戏 APK 需要经常更新,期望文件变更时即可自动清除 EdgeOne 节点的缓存。
准备工作
2. 根据 站点接入 指引添加站点,购买 EdgeOne 套餐,并获取该站点 ID。站点 ID 可通过站点接入后,在站点列表内查看并复制,例如:zone-26v607hq8d3m。 3. 已在 EdgeOne 控制台添加加速域名www.example.com
,且源站配置为腾讯云 COS。 步骤1:创建 EdgeOne 自动清除缓存的云函数并部署
2. 在函数服务页面,单击新建,选择使用模板创建,在模糊搜索输入框中输入 EdgeOne 自动清除缓存并选中,单击下一步。
3. 在“函数配置”页面,如下配置为必填项,其他配置项建议保持使用默认配置即可。
基础配置
函数名称:创建函数时将自动生成一个函数名称,您可以选择自定义修改为一个易识别的函数名称。
地域:请选择对象存储桶 COS 的所在地域,例如:广州。
时区:云函数内默认使用 UTC 时间,您可以通过配置环境变量 TZ 修改。在您选择时区后,将自动添加对应时区的 TZ 环境变量。
函数代码:模板已内置默认函数代码实现 EdgeOne 自动清除缓存的能力,无需改动。
高级配置:
单击高级配置,找到环境配置,您需要在环境变量中添加以下 key 和对应的 value 值,其余配置保持默认即可:
ZoneId:请填写对应需进行自动清除缓存的域名站点 example.com
的 ZoneId,站点 ID 获取方式请参见 准备工作。 eoDomains:请填写已在 ZoneId 下添加好的加速域名,如:www.example.com
。
说明:
如果您在当前站点下有多个域名的源站使用了同一个 COS 存储桶,期望多个域名都能触发自动清除缓存,则填写环境配置时,可以填写添加多个环境变量,以 eoDomains 开头,例如:eoDomains_1、eoDomains_2,如下所示:
权限配置:运行角色勾选启用,通过下拉框选择运行角色(请确保已有角色已包含 QcloudCOSFullAccess 和 QcloudTEOFullAccess 的预设策略),否则请新建运行角色。
触发器配置
以事件类型为全部创建
为例(若需要创建全部删除
事件类型,参照配置即可),在触发器配置中,选择自定义创建,COS Bucket 为与此云函数 SCF 同地域的存储桶,可输入存储桶名称进行模糊查询,例如:purge-cos-1251558888.cos.ap-guangzhou.myqcloud.com。
其余配置项保持为默认配置即可。
4. 单击完成,即可完成 EdgeOne 自动清除缓存函数的创建。
步骤2:验证生效
2. 在存储桶列表页面,单击用于存储 APK 母包的存储桶名称。
3. 在文件列表页面,进入 purge-cos-1251558888.cos.ap-guangzhou.myqcloud.com
根目录。
4. 单击上传文件,上传一个同名文件,例如:v2_src.apk,单击上传。
6. 在函数管理页面,选择日志查询 > 调用日志,通过调用日志获取到函数执行的日志信息,当显示调用成功,且日志内 key 信息与刚才上传的文件名称一致,则表示文件上传到 COS 已触发云函数 SCF 调用 EdgeOne 清除缓存 API 成功。
8. 在清除缓存页面,单击历史记录,查清除任务是否成功,如显示清除成功,表明当前已完成清除。
9. 在浏览器打开开发者工具后,输入该文件的访问路径访问,例如:www.example.com/v2_src.apk
。查看响应头内的 EO-Cache-Status 值。如未清除缓存,访问资源时会命中之前旧的缓存,下图显示为 MISS,则表示资源已从 EdgeOne 节点清除,用户请求时会回源拉取最新资源。
本页内容是否解决了您的问题?