触发器

触发器是函数的调用方式,边缘函数目前支持域名绑定和函数路由两种触发方式,您可以通过域名绑定将某个域名流量全部转发至函数,例如将函数绑定至er.example.com,也可以通过函数路由的方式将某个域名的部分流量转发至函数,例如将er.example.com/test/path/路径流量转发至函数。

限制条件

无论是使用域名绑定触发器还是函数路由触发器,都需要账号下存在一个处于可用状态的站点,可用状态是指站点已购买套餐且通过NSCNAME的方式接入。

配置触发器

通过添加域名配置触发器

域名绑定功能允许您将函数连接至自己的站点域名,在完成域名绑定后,您可以直接使用该域名对函数进行访问。函数绑定的域名需要归属于某个可用站点,在控制台配置后,ESA将自动在站点下添加一条绑定域名的DNS记录。

image
  1. 登录ESA控制台,在左侧导航栏选择边缘计算 > 边缘函数选择您创建的函数,单击详情

  2. 详情页面,选择触发器页签,您可以通过配置域名绑定或路由,将域名的流量转发到边缘函数中。

  3. 输入您要为函数绑定的域名信息,例如example.com。域名添加后,我们将在域名对应的站点下创建新的DNS记录。

    说明

    域名绑定功能新增的域名遵循对应站点下的各项配置,所以如果您的站点未配置SSL/TLS证书,则该绑定域名无法使用HTTPS进行访问。关于站点开启SSL/TLS方式请参见SSL/TLS

通过添加路由配置触发器

路由功能允许用户将某些URL映射到函数。当请求与配置的URL匹配时,将由边缘函数处理该请求,否则将继续执行加速回源的ESA流程。如下图所示,当您为example.com站点配置了example.com/a*的路由规则后,所有与路由规则匹配的路径访问例如/a/a1/a2都会由边缘函数处理,而其他与路由规则不匹配的路径访问例如/b/c/d会继续遵循加速回源或缓存的流程。

image
  1. 登录ESA控制台,在左侧导航栏选择边缘计算 > 边缘函数选择您创建的函数,单击详情

  2. 详情页面,选择触发器页签,在路由单击添加路由。在站点列表中选择目标站点,例如:example.com。您可以通过路由来了解具体参数及注意事项。

修改触发器信息

如果您目前触发器绑定的域名及路由不能满足您当前的业务需求,您可以对触发器已绑定的域名及路由进行编辑或删除操作。

  1. 登录ESA控制台,在左侧导航栏选择边缘计算 > 边缘函数选择您创建的函数,单击详情

  2. 单击目标边缘函数或单击边缘函数右侧详情。在详情页面,选择触发器页签。

  3. 您可在触发器页面,对已绑定的域名进行删除操作,已绑定的路由进行编辑删除操作。

    image

旁路模式

开启函数路由的旁路模式后,如下图所示,如果您的请求命中函数路由策略,请求将以子请求的方式旁路访问边缘函数服务。旁路模式的整体流程为:

  1. 客户端发起请求访问ESA边缘节点。

  2. 请求命中函数路由策略,被转发至边缘函数处理,您可以在边缘函数根据请求内容进行日志打点、鉴权等操作。需要注意,开启旁路模式时,请求体将不会被转发至边缘函数。

  3. 如果边缘函数返回的响应中状态码是200,则请求将继续后续处理流程;如果返回响应中状态码非200,ESA将中止对该请求的处理并返回403给客户端。

  4. 该请求将根据后续策略匹配请求,继续执行ESA的缓存匹配或加速回源逻辑。

  5. 缓存命中后的响应或源站的响应返回ESA节点,此时该响应不会再由边缘函数处理。

  6. 响应被转发至客户端。

image

常见场景

  • 日志打点场景。如果您希望对部分请求产生打点日志,便可以将请求通过旁路模式转发至边缘函数,并在函数中自定义日志打点逻辑。

  • 大文件下载鉴权场景。边缘函数在将响应转发至客户端时,会消耗CPU时间,如果响应内容过大,往往会造成CPU时间片超限,并产生额外的费用。您可以使用旁路模式通过边缘函数完成鉴权,避免上述问题的发生。