触发器是函数的调用方式,边缘函数目前支持域名绑定和函数路由两种触发方式,您可以通过域名绑定将某个域名流量全部转发至函数,例如将函数绑定至er.example.com
,也可以通过函数路由的方式将某个域名的部分流量转发至函数,例如将er.example.com/test/path/
路径流量转发至函数。
限制条件
无论是使用域名绑定触发器还是函数路由触发器,都需要账号下存在一个处于可用状态的站点,可用状态是指站点已购买套餐且通过NS或CNAME的方式接入。
配置触发器
通过添加域名配置触发器
域名绑定功能允许您将函数连接至自己的站点域名,在完成域名绑定后,您可以直接使用该域名对函数进行访问。函数绑定的域名需要归属于某个可用站点,在控制台配置后,ESA将自动在站点下添加一条绑定域名的DNS记录。
通过添加路由配置触发器
路由功能允许用户将某些URL映射到函数。当请求与配置的URL匹配时,将由边缘函数处理该请求,否则将继续执行加速回源的ESA流程。如下图所示,当您为example.com
站点配置了example.com/a*
的路由规则后,所有与路由规则匹配的路径访问例如/a
、/a1
、/a2
都会由边缘函数处理,而其他与路由规则不匹配的路径访问例如/b
、/c
、/d
会继续遵循加速回源或缓存的流程。
修改触发器信息
如果您目前触发器绑定的域名及路由不能满足您当前的业务需求,您可以对触发器已绑定的域名及路由进行编辑或删除操作。
登录ESA控制台,在左侧导航栏选择 。选择您创建的函数,单击详情。
单击目标边缘函数或单击边缘函数右侧详情。在详情页面,选择触发器页签。
您可在触发器页面,对已绑定的域名进行删除操作,已绑定的路由进行编辑及删除操作。
旁路模式
开启函数路由的旁路模式后,如下图所示,如果您的请求命中函数路由策略,请求将以子请求的方式旁路访问边缘函数服务。旁路模式的整体流程为:
客户端发起请求访问ESA边缘节点。
请求命中函数路由策略,被转发至边缘函数处理,您可以在边缘函数根据请求内容进行日志打点、鉴权等操作。需要注意,开启旁路模式时,请求体将不会被转发至边缘函数。
如果边缘函数返回的响应中状态码是
200
,则请求将继续后续处理流程;如果返回响应中状态码非200,ESA将中止对该请求的处理并返回403
给客户端。该请求将根据后续策略匹配请求,继续执行ESA的缓存匹配或加速回源逻辑。
缓存命中后的响应或源站的响应返回ESA节点,此时该响应不会再由边缘函数处理。
响应被转发至客户端。
常见场景
日志打点场景。如果您希望对部分请求产生打点日志,便可以将请求通过旁路模式转发至边缘函数,并在函数中自定义日志打点逻辑。
大文件下载鉴权场景。边缘函数在将响应转发至客户端时,会消耗CPU时间,如果响应内容过大,往往会造成CPU时间片超限,并产生额外的费用。您可以使用旁路模式通过边缘函数完成鉴权,避免上述问题的发生。