前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于COS日志实时自动刷新CDN缓存

基于COS日志实时自动刷新CDN缓存

原创
作者头像
tinkerli
修改2021-04-16 12:23:04
3K0
修改2021-04-16 12:23:04
举报
文章被收录于专栏:日志服务CLS

问题场景

背景:现在很多公司使用对象存储服务来存储静态文件/图片等,充分利用云上功能实现数据处理(数据万象),如COS的缩放/裁剪等功能;同时通过CDN的加速能力,提升访问质量。

问题:文件删除,可能来自第三方的投诉;可能来自违规;可能来自公司本身业务需要等等;COS文件删除,CDN需要刷新缓存;如果用了数据处理能力,比如万象,可能会产生同一个key,数个URL,都需要刷新缓存

解决:

单key-单path场景,如key为/aaa/bbb.jpg,删除的缓存也只有/aaa/bbb.jpg的场景,目前已提供函数计算功能自动刷新的功能;

单key-带有参数或者样式场景,如key为/aaa/bbb.jpg,删除的缓存URL可能是/aaa/bbb.jpg,也可能是/aaa/bbb.jpg?aaaa=1233&a=b,也可能是/aaa/bbb.jpg/yangshi,目前函数计算还未覆盖此场景,需要通过COS的实时日志即CLS日志服务来自动实现刷新功能,同时支持第一种场景的覆盖。

架构拓扑

实现过程

前提条件:

  • 先开通对应cos bucket的日志检索功能
  • 获取对应的日志集和日志主题信息
  • 获取账号API密钥信息
  • 获取CLS对应不同地域的公网域名信息

可用地域链接

创建函数服务

基础配置和函数代码:

  • 创建方式:选择"自定义创建"
  • 函数名字:自定义即可,比如refresh_cdn_cache
  • 地域:需要和cos bucket同地域
  • 运行环境:选择"python3.6"
  • 函数代码:选择"本地上传zip包"

本地zip包请使用本文附件:

高级配置-环境配置:

代码语言:javascript
复制
cls_day_num=7                                   # 检索日志的周期
cls_domain=ap-shanghai.cls.tencentcs.com        # 对应区域cls日志服务的公网域名
cos_bucket_name=tinkerli-cls-1251956900         # 对应的cos bucket的名字
hosts=cls-cos.xxxxxxx.cn                        # 对应需要清楚缓存的CDN域名,支持多个,以';'分割
logset_id=49fc1a43-a340-49c8-91be-fcb4abd106a4  # 对应的日志集id
secret_id=AxxxxD7nxxxxxxxxxxLDsiN7B8p  # 对应API密钥id
secret_key=d1AHFJDtdDLjxxxxxxxx    # 对应API密钥key
topic_ids=0b82160f-9c46-4b95-a668-63874b5cf37f  # 对应的日志主题id

触发器配置:

  1. 触发方式:选择COS触发
  2. 事件类型:选择删除文件

功能验证

COS 文件删除:

  • 批量删除和单文件删除均可,比如通过cos的控制台批量删除

查看SCF运行日志:

  • 可以看到批量删除3个文件,触发了三次云函数调用,均成功。

验证CDN刷结果:

  • 到CDN的控制台-查看刷新结果

可以看到各URL均刷新成功,无论带样式的还是拼接URL的

补充说明

  • 腾讯云日志服务已逐步支持腾讯云各种云产品日志接入,如CLB,CDN,COS,TKE等等均已支持;
  • COS批量删除文件,会触发多个文件的删除事件;
  • 本文只是针对一个场景的问题解决,更多基于日志的玩法欢迎交流。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题场景
  • 架构拓扑
  • 实现过程
    • 前提条件:
    • 创建函数服务
      • 基础配置和函数代码:
        • 高级配置-环境配置:
          • 触发器配置:
          • 功能验证
            • COS 文件删除:
              • 查看SCF运行日志:
                • 验证CDN刷结果:
                • 补充说明
                相关产品与服务
                数据万象
                数据万象(Cloud Infinite,CI)是依托腾讯云对象存储的数据处理平台,涵盖图片处理、内容审核、媒体处理、AI 识别、文档预览等功能,为客户提供一站式的专业数据处理解决方案,满足您多种业务场景的需求。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档