tencent cloud

文档反馈

EdgeOne 自动预热

最后更新时间:2023-12-06 10:40:14
    本文主要介绍了如何通过腾讯云对象存储(Cloud Object Storage,COS)云函数服务(Serverless Cloud Function,SCF)实现 EdgeOne 自动预热资源,预热的功能和原理介绍请参考 预热缓存
    
    
    

    背景介绍

    若您的源站为腾讯云对象存储 COS,当源站上传新的热点资源后(例如:APK 安装包、热点视频、课程文件等),通常需通过预热缓存来将资源提前缓存至 EdgeOne 边缘节点,避免客户端首次请求时因节点未缓存资源导致请求回源的情况。但是预热缓存需要您在文件上传到腾讯云 COS 后,人工到 EdgeOne 控制台内提交需预热的 URL,在需预热的 URL 数量很多的情况下,容易遗漏且可能因为人工操作造成未及时预热。
    
    自动预热可以帮助您在文件上传至腾讯云 COS 后,由腾讯云 SCF 自动检测并调用 EdgeOne 的缓存预热 API 接口自动完成文件预热,保证您的文件在上传后立即预热至 EdgeOne 节点,提高缓存命中率,降低回源请求量。
    注意:
    腾讯云对象存储 COS 为收费功能,使用中可能产生的费用由腾讯云 COS 收取,具体收费详情请参考对象存储计费概述
    云函数 SCF 为收费功能,使用中可能产生的费用由云函数 SCF 收取,具体收费详情请参考云函数计费概述
    每日预热数量具有限额,不同计费套餐有不同限额,详见 套餐选型对比

    适用场景

    场景1:发布新内容
    新版本的安装包或升级包上传至腾讯云 COS 后,资源自动预热至 EdgeOne 加速节点。文件正式发布后,海量用户的下载请求将直接由加速节点响应,提升下载速度的同时,大幅度降低源站压力。
    场景2:大型运营活动
    运营活动发布前,提前将活动页涉及到的静态资源上传到对象存储 COS,资源自动预热至 EdgeOne 加速节点。活动开始后,用户访问的静态资源均由加速节点响应,降低因高流量导致的延迟和拥塞。

    操作步骤

    示例场景

    假设您是一家游戏厂商,已将站点域名 www.example.com 接入到 EdgeOne 加速,源站为腾讯云 COS,地址为:prefetch-cos-1251558888.cos.ap-guangzhou.myqcloud.com 。因为有多款游戏 APK 需要经常更新,期望上传 APK 后即可自动将资源预热至 EdgeOne 边缘节点。

    准备工作

    1. 已开通 对象存储 COS云函数 SCF,记录该存储桶名称及地域信息。
    2. 根据 站点接入 指引添加站点,购买 EdgeOne 套餐,并获取该站点 ID。站点 ID 可通过站点接入后,在站点列表内查看并复制,例如:zone-2p42mkcpwz0y。
    
    3. 已在 EdgeOne 控制台添加加速域名 www.example.com,且源站配置为腾讯云 COS。

    步骤1:创建 EdgeOne 自动预热的云函数并部署

    1. 登录 云函数服务控制台,在左侧菜单栏中,单击函数服务。
    2. 在函数服务页面,单击新建,选择使用模板创建,在模糊搜索中输入 EdgeOne 自动预热并选中,单击下一步
    
    3. 在“函数配置”页面,如下配置为必填项,其他配置项建议保持使用默认配置即可。
    基础配置
    函数名称:创建函数时将自动生成一个函数名称,您可以选择自定义修改为一个易识别的函数名称。
    地域:请选择对象存储桶 COS 的所在地域,例如:广州。
    描述:说明此函数的用途,如:本示例使用 COS 作为触发器,如 COS 文件上传时,触发云函数执行完成 EdgeOne 自动化预热文件到边缘节点。
    运行角色:默认勾选启用,配置并使用 SCF 模板运行角色。如使用已有角色,请确保已有角色已包含 QcloudCOSFullAccess 和 QcloudTEOFullAccess 的预设策略。
    
    函数代码:模板已内置默认函数代码实现 EdgeOne 自动预热能力,无需改动。
    环境配置:
    单击高级配置,选中环境配置,您需要在环境变量中添加以下 key 和对应的 value 值,其余配置保持默认即可:
    ZoneId:请填写对应需进行自动预热的域名站点 example.com 的 ZoneId,站点 ID 获取方式请参见 准备工作
    eoDomains:请填写已在 ZoneId 下添加好的加速域名,如:www.example.com
    
    说明:
    如果您在当前站点下有多个域名的源站使用了同一个 COS 存储桶,期望多个域名都能触发自动预热,则填写环境配置时,可以填写添加多个环境变量,以 eoDomains 开头,例如:eoDomains_1、eoDomains_2,如下所示:
    
    
    
    触发器配置
    在触发器配置中,选择 COS Bucket 为与此云函数 SCF 同地域的存储桶,可输入存储桶名称进行模糊查询,例如:prefetch-cos-1251558888.cos.ap-guangzhou.myqcloud.com。其余配置项保持为默认配置即可。
    
    4. 单击完成,即可完成 EdgeOne 自动预热函数的创建。

    步骤2:验证生效

    1. 登录 对象存储 COS 控制台,在左侧菜单栏中,单击存储桶列表。
    2. 在存储桶列表页面,单击用于存储 APK 母包存储桶名称
    3. 在文件列表页面,进入 prefetch-cos-1251558888.cos.ap-guangzhou.myqcloud.com 根目录。
    4. 单击上传文件,首次上传一个文件,例如:v2_src.apk,单击上传
    
    5. 文件上传成功后,在 云函数 SCF 控制台 中,单击 步骤1 创建的函数名称
    6. 在函数管理页面,选择触发管理 > 日志查询 > 调用日志,通过调用日志获取到函数执行的日志信息,当显示调用成功,且日志内 key 信息与刚才上传的文件名称一致,则表示文件上传到 COS 已触发云函数 SCF 调用 EdgeOne 缓存预热 API 成功。
    
    7. 前往 边缘安全加速平台 EO 控制台,进入当前站点 example.com 后,单击站点加速 > 预热缓存。
    8. 在预热缓存页面,单击历史记录,查看预热结果是否成功,如显示预热成功,表明当前已完成预热。
    
    9. 在浏览器打开开发者工具后,输入该文件的访问路径访问,例如:www.example.com/v2_src.apk。查看响应头内的 EO-Cache-Status 值。如未预热资源,首次访问资源时将显示为 MISS,下图显示为 HIT,则表示资源已提前自动预热到边缘节点,即已实现首次访问也可以命中缓存。
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持