You need to enable JavaScript to run this app.
文档中心
函数服务

函数服务

复制全文
下载 pdf
功能应用
使用函数服务实现 TOS 触发 MCDN 刷新预热
复制全文
下载 pdf
使用函数服务实现 TOS 触发 MCDN 刷新预热
本文为您介绍如何通过函数服务实现定时触发 CDN 刷新/预热任务。​
场景介绍​
对 CDN 节点进行刷新/预热,保证 CDN 缓存和源站内容的一致性,是 CDN 用户的常用操作。一些金融行业对变更时间有严格的要求,例如只允许每日凌晨进行变更。对于这种场景,手动进行刷新和预热操作繁琐且容易出错,通过函数服务定时触发刷新/预热任务,可以很好地解决用户诉求。​
背景信息​
  • CDN:内容分发网络(Content Delivery Network,CDN)面向内容提供商,针对其在互联网上传播的图片、音视频、网页、下载包等静态内容,提供传输加速服务,优化用户访问体验,提高下载速度。更多介绍请参见 什么是内容分发网络。​
  • 刷新:在 CDN 节点上删除已经缓存的指定内容或将其标记为已过期。这样当用户下次访问节点获取内容时,节点将从源站拉取最新的内容,返回给用户并进行缓存。​
  • 预热:CDN 节点主动从源站拉取特定文件(一般是大文件,如视频文件、安装包文件等),并将文件缓存在节点上。这样当用户请求对应文件时,CDN 节点可以直接返回文件。该方式减少了节点从源站获取文件带来的延时,避免了用户同时请求大文件时源站下载压力过大。​
前提条件​
  • 内容分发网络​
  • 已开通内容分发网络。​
  • 已添加您的站点域名作为加速域名,具体操作可参见 新增域名。​
  • 已获取 API 访问密钥(AK 和 SK),并确保该密钥具有 CDN 缓存预热(SubmitPreloadTask)、缓存刷新(SubmitRefreshTask)的操作权限。具体操作可参见 Access Key(密钥)管理 和 创建用户并授权。​
  • 函数服务​
  • 已开通函数服务。​
  • 日志服务​
  • 如需使用函数的日志功能,请提前开通火山引擎日志服务。​
使用限制​
CDN 存在每日刷新/预热配额上限,执行当天如超过当日配额可能导致任务失败。详细内容可参见 刷新配额 和 预热配额。​
操作步骤​
步骤一:使用代码模板创建函数​
使用 vefaas-golang-cdn-refresh-preload 代码模板创建函数,并将代码需要获取的 AK 和 SK 配置为环境变量。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在函数列表页面,单击 创建函数。​
  1. 在创建函数页面,选择 vefaas-golang-cdn-refresh-preload 模板,单击 下一步:函数配置。​
  • ​​​
  1. 按要求配置函数的信息。​
  • ​alt​​
  • 基础信息​
  • 配置函数名称和备注信息。​
  • 函数代码​
  • 代码模板已提供刷新/预热业务代码,无需配置。​
  • 高级配置​
  • 本示例仅配置日志功能和环境变量,其余参数保持默认配置。​
  • ​
    配置项​
    说明​
    日志功能​
    启用日志功能,投递至默认日志集。​
    环境变量​
    新增两条环境变量,将前提条件中准备的 AK 和 SK 配置为环境变量。配置格式为:​
    • CloudAPI_AccessKey:xxx​
    • CloudAPI_SecretKey:xxx​
    ​
  1. 单击 确定,完成函数创建。​
步骤二:发布函数​
将函数的当前代码和配置发布至线上。​
  1. 在函数详情页面,单击右上角的 发布。​
  1. 函数版本 使用 Latest,按需填写 版本描述,实例数上限 保持默认。​
  • ​​​
  1. 单击 确定, 函数进入发布中。函数发布成功后如下图所示。​
  • ​​​
步骤三:创建并启用定时触发器​
为当前函数配置 Timer 触发器,设置触发函数的规则。​
  1. 切换至触发器页签,单击 创建触发器。​
  1. 按要求配置触发器信息。​
  • ​​​
  • 触发器类型:选择 Timer 触发器。​
  • 触发器名称:根据界面提示规则自定义触发器名称。​
  • 推送时间:根据业务需求设置触发周期和时间。本示例设置为每分钟触发。​
  • 立即启用:开启后,触发器才能正常工作。​
  • 请求并发:开启后,如果该触发器的上一个请求未完成,但下一个请求时间已到达时,将不等待上一请求完成,直接并发处理下一个请求。本示例不启用。​
  • 触发消息:通过触发消息向函数传递需要执行的任务类型(刷新/预热)和执行对象(URL)等信息。​
说明​
  • 每个定时触发器只能指定一种任务类型。​
  • 触发消息必须为 json 对象格式,当前支持的字段参见下表:​
  • ​
    字段名​
    字段类型​
    是否必填​
    说明​
    TaskKind​
    string​
    是​
    任务类型。可选值有:​
    • refresh: 刷新​
    • preload: 预热​
    TaskType​
    string​
    否​
    刷新任务类型,只有 TaskKind = refresh 才需填写。更多信息参见 CDN API 参考 Type 字段。​
    可选值有:​
    • file(默认值):文件刷新​
    • dir:目录刷新​
    Urls​
    string​
    是​
    指定一个或多个内容 URL。更多信息参见 CDN API 参考 Urls 字段。​
    • 内容 URL 以 http:// 或 https:// 开头。​
    • 多个内容 URL 用\n分隔。​
    • 指定目录刷新时,需要以/结尾。​
    • 示例:http://example.com/1.txt``\n``http://www.example.com/2.txt​
    ConcurrentLimit​
    int​
    否​
    当 TaskKind = preload 时,指定内容分发网络在处理预热任务时,每次向源站请求的文件数量。更多信息参见 CDN API 参考 ConcurrentLimit 字段。​
    默认值是 10,取值范围是 1-1000。​
    ​
  1. 单击 确定,完成 Timer 触发器创建。​
结果验证​
  1. 进入当前函数的 资源管理 页签。单击 日志,查看函数实例的实时日志,可看到已成功提交刷新/预热任务。​
  • ​​​
  • ​​​
  1. 若启用日志功能,可进入当前函数的 日志 页签。查询当前函数的执行日志,可看到已成功提交刷新/预热任务。​
  • ​alt​​
  1. 进入 CDN 控制台的 刷新预热 页面,切换至 操作记录 页签,可查询刷新/预热任务是否执行成功,触发时间间隔是否符合预期。​
  • ​​​
​
最近更新时间:2025.03.11 20:30:05
这个页面对您有帮助吗?
有用
有用
无用
无用