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

函数服务

复制全文
下载 pdf
功能应用
使用函数服务定时触发 CDN 刷新预热
复制全文
下载 pdf
使用函数服务定时触发 CDN 刷新预热
本文为您介绍如何通过函数服务实现定时触发 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
这个页面对您有帮助吗?
有用
有用
无用
无用