Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用 SCF 自动刷新被 CDN 缓存的 COS 资源

使用 SCF 自动刷新被 CDN 缓存的 COS 资源

原创
作者头像
haimingli
发布于 2020-12-29 01:39:47
发布于 2020-12-29 01:39:47
1.6K0
举报

实践背景

当静态内容需要更新时,通常会往 COS 覆盖上传一个更新版本的资源或删除该资源。若您配置的 CDN 缓存过期时间较长,则 CDN 的某些边缘节点可能会仍然缓存旧资源。缓存过期时间太短,则会影响到加速的效果。具体详情请参见 节点缓存配置 的相关信息。

根据上述情况,您需要使用 CDN 控制台上的 缓存刷新 功能,对指定 URL 进行手动刷新操作,实现删除无效缓存文件或者更新资源。

本文将结合 COS 和 SCF 的功能特性,在 COS 文件更新时,实现自动刷新 CDN 缓存的效果。

前提条件

  1. 腾讯云账户,需具备 COS、CDN、SCF 等产品的访问权限。
  2. 创建存储桶,并在该存储桶上绑定了 CDN 加速域名
  3. 确保 COS 的存储桶的所属地域支持 SCF 产品功能,暂不支持跨地域调用。
  4. 准备好可调用 CDN 刷新接口的云 API 密钥,以及下载 SCF 刷新 CDN 示例代码

实践步骤

本实践案例以 Node.js 语言示例代码为例。请按照以下步骤进行实践:创建 SCF 函数 > 配置函数 > 测试

<span id="step1"></span>

创建 SCF 函数

!您创建的函数所属地域需与 COS 存储桶的地域保持一致。

  1. 登录 SCF 控制台,在左侧导航菜单中,单击【函数服务】。
  2. 选择与静态内容相同的地域,单击【新建】创建函数。
  3. 在 “新建函数” 页面,选择 “空白函数”,输入函数名称(如 refresh_cdn),设置运行环境(示例代码使用 Node.js 语言,因此运行环境设置为 Nodejs 6.10),如下图所示:
  4. 确认配置无误后,选择【下一步】>【完成】,即可创建 SCF 函数。

<span id="step2"></span>

配置函数

空白函数创建完成后,需添加对应的函数代码,并设定触发方式,使函数可以正常工作。

  1. 配置函数代码
  2. 下载 SCF 刷新 CDN 示例代码
  3. 解压所有文件,找到其中的 index.js 文件并打开。
  4. 在代码里修改替换成您的具备调用 CDN 刷新接口权限的 SecretId、SecretKey 和需要刷新的域名。如下图所示:
  5. 如需调用刷新绑定在腾讯云海外 CDN 上的域名,请将代码中的RefreshCdnUrl修改为RefreshCdnOverSeaUrl
  6. 上传函数代码 1. 将修改好的代码和其他文件重新压缩打包为 zip 格式。 2. 在 SCF 控制台 中,选择 【函数代码】 页签,将 "提交方法" 设置为 "本地上传 zip 包",单击【上传】,选择此压缩的 zip 格式文件。如下图所示:
  7. 添加触发方式
  8. SCF 控制台 中,选择【触发方式】,单击【添加触发方式】。
  9. 将 “触发方式” 设置为 "COS 触发",并选择需刷新 COS 资源的存储桶,配置项说明如下,了解更多详情请参见 COS 触发器 文档。 COS Bucket:选择用作事件源的 COS 存储桶,该存储桶必须位于函数所在地域。 事件类型:选择 COS Bucket 在哪种条件下触发函数。对于每个 COS Bucket,一种事件类型只能设置一次。 如果您仅需要自动刷新 CDN 访问覆盖上传到 COS 的对象,则需将 "事件类型" 设置为上传操作,如 PUT 方法创建、POST 方法创建等。 如果您同时需要对删除行为也进行自动刷新,则需再添加一种触发方式,并将 "事件类型" 设置为 "删除文件"。 前缀过滤:前缀过滤通常用于过滤指定目录下的文件事件,例如前缀过滤为test/,则仅test/目录下的文件事件才可以触发函数,hello/目录下的文件事件不应该触发函数。 后缀过滤:后缀过滤通常用于过滤指定类型或后缀的文件事件,例如后缀过滤为.jpg,则仅.jpg结尾的文件的事件才可以触发函数,.png结尾的文件不应该触发函数。
  10. 勾选立即启用。
  11. 确认配置信息无误后,单击【保存】。

<span id="step3"></span>

测试

!由于 CDN 是异步操作,查询操作时,请稍等片刻。

完成配置后,可在对应存储桶中上传一个相同对象键的新文件进行验证。

  1. 登录 COS 控制台,上传一个相同对象键的新文件,具体操作请参见 上传对象 文档。
  2. 完成上传后,登录 SCF 控制台,选择【函数服务】>【函数名称】> 【运行日志】,可查询到调用成功的日志。
  3. 登录 CDN 控制台,选择【缓存刷新】>【操作记录】,可查询到自动调用刷新的记录。
  4. 以上测试通过后,即可访问 CDN 加速后的 URL 获取到最新的资源。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 SCF 自动刷新被 CDN 缓存的 COS 资源
本实践将引导您在使用腾讯云对象存储 COS 上传对象时,借助云函数 SCF 实现自动刷新在 CDN 上指定的缓存文件,让其自动获取到更新后的资源。
云存储
2020/05/26
3.2K0
使用 SCF 自动刷新被 CDN 缓存的 COS 资源
丝滑的博客:基于COS/CDN/CI/Hexo/DNS
作者介绍 羽瀚尘:研究生在读,喜欢互联网技术,善于使用公有云服务满足现实需求。 目前搭建博客有哪些选择呢? 动态博客:WordPress... 静态博客:Hexo、Jekyll、Hugo... 对于一般的内容而言,使用动态博客较为复杂,需要数据库、运行环境的配合。动态博客的代码也较为复杂,修改代码进行个性化难度较高。 静态博客就方便多了,如 github 原生支持的 Jekyll 博客。但是 Jekyll 的主题格式不够多样化,使用 Hexo 的 Next 主题就不错。但随之而来的就是 He
云存储
2020/07/02
1K0
通过SCF回调COS上传对象信息到业务接口
腾讯云COS在应用端实践中,由于是客户端直传至COS,对于业务服务器并未得到请求,也不知道客户端实际上传的内容,所以这里就需要通过上传COS后回调的方式来告知业务服务器。
wainsun
2020/11/19
1.4K0
通过SCF回调COS上传对象信息到业务接口
腾讯云对象存储 COS 高可用解决方案,都在这里了!
上一篇内容我们说到了 COS 是什么“要对象存储做什么,我有女朋友就够了!”的文章。本文将着重介绍如何尽可能的提高腾讯云对象存储 COS 的可用性。
云存储
2019/12/06
2.7K0
腾讯云对象存储 COS 高可用解决方案,都在这里了!
【玩转 EdgeOne】加速COS静态网站并实现动态刷新
腾讯云有一款Serverless Framework产品,可以从本地把网站等框架快速部署到腾讯云产品上而无需复杂的服务器配置。
Ar-Sr-Na
2023/10/21
1K2
【玩转 EdgeOne】加速COS静态网站并实现动态刷新
简单几步,利用Serverless,让COS中文件变更自动刷新CDN
SCF能实现事件式的触发,让你的一段代码跑在云上,无需自己去搭建服务器。而这里我们要利用能力:COS文件上传/删除的触发器。
galen
2018/05/02
10.2K17
简单几步,利用Serverless,让COS中文件变更自动刷新CDN
【利用无服务器云函数(SCF)】自动刷新COS中变更文件的CDN!
简单几步,利用Serverless,让COS中文件变更自动刷新CDN! 背景 这几天遇到这样的一个场景,相信也是大多数的站长会遇到的一个问题: 自己的一个个人站点使用了COS作为前端静态资源的存储(JS、CSS、图片等等),同时开启了CDN作为资源的加速分发,为了最大的达到加速效果,把这些资源的缓存时间设置30天及以上。某一天,自己的站点需要变更一下css样式,修改完之后扔到COS中,发现站点中的样式仍没有生效。最后想起是命中了CDN的缓存,因此需要到 CDN控制台 进行URL刷新。 现状 目前COS(对象
QUXINGDONG.COM
2018/06/20
2.3K0
基于COS日志实时自动刷新CDN缓存
问题场景 背景:现在很多公司使用对象存储服务来存储静态文件/图片等,充分利用云上功能实现数据处理(数据万象),如COS的缩放/裁剪等功能;同时通过CDN的加速能力,提升访问质量。 问题:文件删除,可能来自第三方的投诉;可能来自违规;可能来自公司本身业务需要等等;COS文件删除,CDN需要刷新缓存;如果用了数据处理能力,比如万象,可能会产生同一个key,数个URL,都需要刷新缓存。 解决: 单key-单path场景,如key为/aaa/bbb.jpg,删除的缓存也只有/aaa/bbb.jpg的场景
tinkerli
2021/04/15
3.1K0
基于COS日志实时自动刷新CDN缓存
【scf】scf工具使用cos部署应用
登录腾讯云Serverless 控制台,单击左侧导航栏的函数服务可以创建云函数,也可以单机左侧导航栏的Serverless 应用来新建应用
williamji
2022/11/08
7240
GitHub Actions + 腾讯云COS + SCF云函数 + 自动刷新CDN 完美自动化部署静态网站
作为强迫症患者,一直对自动化部署非常痴迷,个人认为全自动部署最重要的就是稳定可靠,经过研究测试,最终使用GitHub和腾讯云两大平台,成功完成了全自动部署网站的实践.
用户8851537
2021/07/30
1.5K0
基于SCF+CloudMonitor实现COS敏感操作监控告警
作者介绍 饶云枭:腾讯云前端高级工程师,现主要负责对象存储COS相关前端研发工作,最近正在探索COS与其他云产品进行结合的轻应用场景。 导读 数据,是一家公司最核心的资产,也是业务的生命线,随着近年来数据上云的趋势,越来越多的公司都选择将数据托管在对象存储服务上。 有这么一个故事 这其实是一次事故,成立不久的创业公司T公司也是其中一员,他们最近就遇到数据安全相关的问题,一个新员工的误操作导致数据丢失,让我们看看到底发生了什么并分析下如何规避该类问题。 画面切换到T公司办公室
云存储
2020/07/14
7660
使用腾讯云函数SCF快速解压对象存储COS中的ZIP文件
在本实践中,我们用到了云函数 SCF 和对象存储 COS。假定用户上传到 COS 的 zip 文件需要进行解压缩,并以 zip 包名作为文件夹名,回传到 COS。用户可根据示例代码进行扩展,例如支持其他格式文件的解压缩操作。
云存储
2019/11/26
4.2K0
使用腾讯云函数SCF快速解压对象存储COS中的ZIP文件
GitHub Actions+腾讯云COS+SCF云函数刷新CDN自动化部署静态网站
Stille:互联网重度爱好者,喜欢追求一切基于互联网的前沿科技、技术、产品,目前从事互联网软硬件相关工作。
云存储
2020/05/26
2.4K1
卢萌凯:玩转SCF与COS的结合应用
大家好。我是腾讯云中间件及无服务器云函数架构师。我今天介绍分四部分:第一,对象存储COS简介。第二,比较实用的一部分,SCF与COS结合使用的应用场景。第三,比较有意思,人脸识别Demo。调用AI的接口,用几行代码就把人脸识别的Demo就实现了。最后一部分是最佳实践。其实主要是来看一下在COS使用过程当中有哪些需要注意的地方。
腾讯云开发者社区技术沙龙
2018/08/29
2.1K0
SCF函数同个COS目录前缀后缀实现ZIP自动解压缩功能
登录控制台-》访问管理-》角色-》新建角色-》选择角色载体-》选择腾讯云产品服务-》QcloudAccessForCOSBatchRole载体勾选后下一步确认,具体步骤如下截图:
╰ゑ迷羊ぉ
2020/03/11
1.2K0
SCF函数同个COS目录前缀后缀实现ZIP自动解压缩功能
serverless从入门到实践总结篇
虚拟主机已经是快被淘汰掉的上一代产物了。云计算涌现出很多改变传统 IT 架构和运维方 式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升 效率是云服务永恒的主题。Serverless 的出现真正的解决了降低成本、提升效率的问题。它真正做到了弹性伸缩、高并发、按需收费、备份容灾、日志监控等。
前端进阶之旅
2022/07/04
4.3K1
serverless从入门到实践总结篇
使用云函数 SCF+COS 快速开发全栈应用
我一直想做一个网页应用,奈何没有系统学习过前端,直到后来我接触到腾讯云无服务器云函数 SCF,让前端可以快速获得后端的能力同时,一并解决了前端数据请求跨域的问题。 没错,云函数 SCF 就是那种一旦用了就无法回到原来那种神奇的东西,让人不禁感叹为什么没有早点遇到 SCF 然后我花了大概一天的时间编写调试上线发布云函数(应用后端),然后又用了一天的时间学了下前端,主要是确定要用到的技术栈(后面我会再讲到这个问题),然后第三天正式开始开发应用,将云函数引入前端调用,测试数据,调整布局,打包网页发布到 codi
腾讯云serverless团队
2020/06/09
1.1K1
通过云函数SCF把视频处理VC迁移到云转码
本文将引导你逐步把视频处理的功能迁移到云转码,从腾讯云官网得知,视频处理VC的功能已迁移至云转码,不过老用户依然可以正常使用视频处理VC,但云转码不支持文件上传到cos后自动转码,需要调用一次云API发起转码;
美女视频
2019/07/24
1.7K0
通过云函数SCF把视频处理VC迁移到云转码
发布更新|腾讯云 Serverless 产品动态 20200714
一 : SCF VS Code 插件发布 2.0 版本 6 月 12 日正式上线 产品介绍: Tencent Serverless Toolkit for VS Code 是腾讯云 Serverless 产品的 VS Code(Visual Studio Code)IDE 的插件。该插件可以让您更好地在本地进行 Serverless 项目开发和代码调试,并且轻松将项目部署到云端。VS Code 插件升级 2.0 版本,提供了基于 Serverless Framework yaml 的配置文件格式支持、新增
腾讯云serverless团队
2020/07/15
1.3K0
使用腾讯云SCF实现COS费用封顶的最佳实践
腾讯云COS对象存储,在使用的过程中,为了降低开发成本或单纯的出于“便捷”的考虑,往往将存储桶设置为公有读状态。但这也埋下了巨大的安全风险的种子,在各种流量盗刷场景下,会快速吸干账户余额,正可谓“公有一时爽,盗刷就破产”。
wainsun
2023/04/05
11.6K1
使用腾讯云SCF实现COS费用封顶的最佳实践
推荐阅读
相关推荐
使用 SCF 自动刷新被 CDN 缓存的 COS 资源
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文