You need to enable JavaScript to run this app.
导航

使用函数服务实现 TOS 触发 MCDN 刷新预热

最近更新时间2023.08.30 10:50:42

首次发布时间2023.04.04 09:46:42

函数服务提供 vefaas-python38-tos-mcdn-refresh 代码模板,方便您通过 TOS 事件自动触发 MCDN 刷新预热。本文为您介绍如何使用该代码模板实现 MCDN 自动刷新。

场景介绍

互联网应用大多采用动静分离架构,将视频、音频、图片、JS 脚本等静态资源放在对象存储(TOS) 中,并使用多云 CDN(MCDN)进行访问加速。若 TOS 的旧资源发生更新或升级,就需要及时更新节点已缓存内容,避免用户仍访问到旧的缓存资源。

MCDN 提供刷新预热功能,支持手动提交缓存刷新预热任务。然而手动运维并不高效且容易出错,函数服务可以帮助您实现 TOS 变更自动触发 MCDN 刷新预热,极大地提高运维效率。

背景信息

  • MCDN:MCDN 面向企业客户的运维/运营角色,提供跨主流云厂商的 CDN 资源管理及流量管理服务。您可以通过添加云账号来开启多云 CDN 管理体验,统一管理各 CDN 厂商的资源,灵活调整各 CDN 厂商在不同省份运营商中的流量比例,保障业务稳定性,提升资源管理效率。更多介绍请参见 什么是多云CDN

  • 刷新:在 CDN 节点上删除已经缓存的指定内容或将其标记为已过期。这样当用户下次访问节点获取内容时,节点将从源站拉取最新的内容,返回给用户并进行缓存。

  • 预热: CDN 节点主动从源站拉取特定文件(一般是大文件,如视频文件、安装包文件等),并将文件缓存在节点上。这样当用户请求对应文件时,CDN 节点可以直接返回文件。该方式减少了节点从源站获取文件带来的延时,避免了用户同时请求大文件时源站下载压力过大。

前提条件

使用限制

本代码模板仅支持文件刷新和文件预热。

操作步骤

步骤一:创建函数并配置代码信息

使用 vefaas-python38-tos-mcdn-refresh 模板创建函数,并在代码中更新 AK/SK 和待刷新预热的域名。

  1. 登录 函数服务控制台

  2. 在顶部导航栏,选择目标地域。

  3. 在函数列表页面,单击 创建函数

  4. 在创建函数页面,选择 vefaas-python38-tos-mcdn-refresh 模板,单击 下一步:函数配置。

  5. 配置函数的基础信息,包括函数名称和备注。

  6. 配置函数代码信息。代码模板已提供 TOS 触发 MCDN 刷新预热的业务代码,您只需填充自己的 AK、SK 和加速域名。

    • 将 index.py 文件中的 AK 和 SK 替换为您自己的 AK 和 SK。

    • 将 index.py 文件中的 domain 替换为您自己的加速域名。

    注意

    • 最多可输入 50 个 URL。

    • URL 的格式为http://domain.com/,请勿删除域名后的/

    • 本示例仅演示刷新功能。如果需要执行预热操作,请去除 index.py 中 MCDN Preload code 的注释。

  7. 配置函数的高级配置信息。本示例保持默认。

  8. 单击 确定,完成函数创建。

步骤二:发布函数

将函数的当前代码和配置发布至线上。

  1. 在函数详情页面,单击右上角的 发布

  2. 函数版本 使用 Latest,按需填写 版本描述实例数上限 保持默认。

  3. 单击 确定, 函数进入发布中。函数发布成功后如下图所示。

步骤三:配置 TOS 触发器

为当前函数配置 TOS 触发器,设置触发函数的规则。

  1. 切换至触发器页签,单击 创建触发器

  2. 按要求配置触发器信息。更多参数介绍请参见 创建 TOS 触发器

    • 触发器类型:选择 TOS 触发器。

    • 触发器名称:根据界面提示规则自定义触发器名称。

    • TOS Bucket:选择与加速域名绑定的 TOS Bucket。

    • 触发事件:本示例选择 tos**:ObjectCreated:Put**,通过简单上传对象后触发。

    • 过滤条件:通过设置过滤条件,可精确匹配需要监听的事件所包含的对象范围,有效降低触发频率,减少成本。本示例不设置。

  3. 单击 确定,完成 TOS 触发器创建。

结果验证

  1. 在当前函数的触发器页签下,选择刚才创建的 TOS 触发器,单击 Bucket 名称,跳转至对象存储控制台的对应 Bucket。单击 上传文件,从本地提交一个文件。

  2. 返回函数服务控制台,进入当前函数的资源管理页签。单击 日志,查看函数实例的实时日志,可查看到”刷新已成功“,表明刷新任务已提交成功。

  3. 跳转至多云CDN控制台,进入预热刷新页面。通过操作记录定位到刚才执行的文件刷新任务,单击 查看,跳转至执行状态页签,查看该刷新任务是否执行成功。