阿里云内容分发网络CDN(Content Delivery Network)和函数计算无缝集成,您可以编写函数对CDN事件进行自定义处理。当CDN系统捕获到指定类型的、满足过滤条件的事件后,通过CDN事件触发器触发函数执行。

背景信息

阿里云CDN是建立并覆盖在承载网之上、由分布在不同区域的边缘节点服务器群组成的分布式网络。阿里云CDN可以替代传统以Web Server为中心的数据传输模式,将源站资源缓存到阿里云全国各地的边缘服务器,供您就近快速获取,提升用户体验,降低源站压力。在函数计算中通过配置内容分发网络事件触发器(以下简称“CDN 事件触发器”)集成CDN服务可以实现您对CDN的各类事件进行自定义处理。例如,您可以设置函数和对应的CDN触发器来处理www.taobao.com域名下的资源刷新事件,当该域名下有资源刷新事件时,CDN事件触发器会自动触发函数执行。

使用场景

CDN事件触发器可以实现函数计算与CDN服务的集成,集成的使用场景如下:

  • CDN在预热(CachedObjectsPushed)和刷新(CachedObjectsRefreshed)用户数据后,通过触发器执行函数。用户可以及时得知资源预热刷新的状态并进行下一步处理,避免不断轮询列表查询最新状态。
  • 当在CDN上发现违禁内容(CachedObjectsBlocked)时,通过触发器执行函数直接去源站删除资源。您不需要等待CDN团队响应,可以及时去源站删除资源。
  • 日志文件生成后(LogFileCreated),通过触发器执行函数处理日志。您不需要长时间等待日志,可以及时转存或处理日志。
  • 当某加速域名被停用(CdnDomainStopped)或者被启用(CdnDomainStarted),通过触发器执行函数及时作出相应的处理。

CDN 事件定义

当 CDN 系统捕获到相关事件后,会将事件信息编码为 JSON 字符串,传递给函数进行处理。CDN 事件触发器当前支持的事件及版本如下表所示。

事件名称 事件版本 过滤参数 参考文档
CachedObjectsRefreshed 1.0.0 domain 刷新节点上的文件内容
CachedObjectsBlocked 1.0.0 domain CDN 封禁资源
CachedObjectsPushed 1.0.0 domain 预热源站内容到缓存节点
LogFileCreated 1.0.0 domain 获取加速域名的日志信息
CdnDomainStarted 1.0.0 domain 启用状态为停用的加速域名
CdnDomainStopped 1.0.0 domain 停用加速域名
CdnDomainAdded 1.0.0 domain 添加加速域名
CdnDomainDeleted 1.0.0 domain 删除已添加的加速域名