本文将为您介绍从开通边缘函数服务到使用边缘函数的全流程,便于您快速上手边缘函数。
您可以参考以下简单的配置流程学习如何将代码快速部署到ESA全球节点。
前提条件
请确保您已在ESA上添加目标站点,且站点状态为已启动状态,你可以参考NS方式接入ESA或CNAME方式接入ESA来添加站点。
如果您想通过HTTPS协议访问边缘函数,还需要对站点配置SSL/TLS证书,详情请参见配置边缘证书。
步骤一:创建函数
登录ESA控制台,在左侧导航栏选择 。
在边缘函数页面,单击创建函数。
在创建函数对话框中,您可以选择ESA提供的模板生成函数代码,也可以选择业务需要的模板。选择完成后,单击下一步。
配置函数规格等基本信息,完成后单击提交。
参数
说明
函数名称
请输入函数名称。
说明小写英文字母开头,可包含小写英文字母、数字和中划线,但不能以中划线结尾,名称长度2到41个字符,例如
routine-name
。函数名创建后无法修改。描述
(选填)函数的描述信息。
代码预览
函数代码预览信息。
步骤二:配置触发器
在ESA边缘函数中,触发器定义了函数脚本的调用方式。您可以为函数绑定域名,将某个域名流量全部转发至该函数,例如将函数绑定至er.example.com
;也可以通过函数路由指定URL上的请求,将某个域名的部分流量转发至函数,例如将er.example.com/test/path/
路径流量转发至函数。
边缘函数创建完成后,单击绑定域名。
在触发器页面,您可以通过配置域名绑定或路由,将域名的流量转发到边缘函数中。
添加域名配置触发器
域名绑定功能允许您将函数链接至自己的站点域名,在完成域名绑定后,您可以直接使用该域名对函数进行访问。
例如:您已在ESA添加了站点
example.com
,可以将触发器域名绑定为er.example.com
,那么er.example.com
、er.example.com/user
、er.example.com/login
等请求均会被转发至边缘函数。在域名绑定单击添加域名。
输入域名后,单击确定。
说明NS接入的域名:绑定域名后,会自动帮您添加一条DNS记录用来绑定边缘函数。
CNAME接入的域名:绑定域名后,会自动生成一个CNAME,但您需要手动在当前站点对应的域名解析服务商添加CNAME解析。
添加路由配置触发器
路由功能允许用户将某些URL映射到函数。当请求与配置的URL匹配时,将由边缘函数处理该请求,否则将继续执行加速回源的ESA流程。如下图所示,当您为
example.com
站点配置了example.com/a*
的路由规则后,所有与路由规则匹配的路径访问例如/a
、/a1
、/a2
都会由边缘函数处理,而其他与路由规则不匹配的路径访问例如/b
、/c
、/d
会继续遵循加速回源或缓存的流程。登录ESA控制台,在左侧导航栏选择 。选择您创建的函数,单击详情。
在详情页面,选择触发器页签,在路由区域,单击添加路由。
填写路由名称,在选择站点列表中选择目标站点,例如:
example.com
。选择路由模式。
简单模式
填写路由名称,选择目标站点。
选择简单模式,填写路由规则。
自定义模式
填写路由名称,选择目标站点。
选择自定义模式。
在如果请求匹配以下规则...区域设置要匹配的用户请求特征,具体配置规则请参见规则表达式的组成。
则执行…边缘函数。
示例1:路由填写
*.example.com/*
,表示任何发送到http://www.example.com/
或http://example.com/
的请求都会被转发到边缘函数。示例2:路由填写
example.com/a*
,表示任何发送到http://example.com/a
、http://example.com/a1
或http://example.com/api
的请求会被转发到边缘函数。示例3:路由填写
www.example.com/api/*
,表示任何发送到http://www.example.com/api/
及其子路径的请求(例如http://www.example.com/api/users
或http://www.example.com/api/products/123
)都会被转发到边缘函数。
单击确定。
说明如果路由输入的是
*.example.com
或www.example.com
这种带有前缀的域名,还需要在ESA的DNS记录中手动添加一条记录,否则访问失败。函数路由如果存在多条配置,从上至下一旦有一条匹配成功,则跳出不再执行下面的匹配。
匹配规则
路由配置必须同时包含域名主机名和路径URI信息,因此任何只包含路径URI的路由规则例如
/path
将无法配置。路由配置通过添加前后通配符
*
的方式来匹配更多请求,通配符*
支持匹配零个或多个任意字符。例如example.com/*
将匹配访问example.com
的所有请求。路由配置区分大小写。例如
example.com/a
和example.com/A
将是两条不同的路由规则。路由配置不支持配置中间通配符
*
和参数。例如example.com/*/path
和example.com/path?param=1
的形式都是不允许的。当访问请求和多个路由配置都可以匹配时,将优先匹配更早配置的规则项。
步骤三:开发并调试函数
在详情页面,选择代码页签,即可开始使用
JavaScript ES6
语法开发边缘函数。ESA在控制台代码开发工具右侧提供了一套调试环境,完成代码开发后,您可以先单击保存,然后直接在右侧工具栏构造HTTP的请求方法、请求头、请求体,构造完成后单击请求按钮,控制台将直接返回您的请求经过函数处理后的响应结果。
调试完代码后,单击生成版本。您可以选择部署页签,查看生成的版本。
单击发布,选择测试环境。您的边缘函数将在边缘测试节点生效,您可以直接通过绑定
Host
的方式使用真实客户端发出请求并在客户端查看结果。说明建议的发布顺序:先逐个发布到各个灰度环境,所有灰度环境全部发完后,再发布至生产环境。
步骤四:发布正式版本
在详情页面,选择部署页签,单击目标版本操作列的发布。
选择生产环境,单击发布。
单击确定,所有生产环境的节点都将部署该版本函数代码。