通过函数模板创建应用

ESA的边缘节点提供Serverless代码执行环境,只需编写业务函数代码并配置触发规则,无需配置服务器或管理基础设施,即可在靠近用户的边缘节点上实现代码的弹性伸缩与安全运行,显著降低运维成本,提升响应速度。

您可以参考以下简单的配置流程学习如何将代码快速部署到ESA全球节点。

步骤一:创建函数

  1. 登录ESA控制台,在左侧导航栏选择边缘计算 > 函数和Pages

  2. 函数和Pages页面,单击创建

  3. 单击函数模板页签,根据实际需要选择函数模板,然后单击下一步

    image

  4. 填写函数名称描述并预览代码详情,单击提交

    image

  5. 等待系统构建完成后,将为您生成一个公共域名访问链接,可直接访问预览效果。若想要绑定自定义域名可参考如何绑定自定义域名imageimage

步骤二:开发并调试函数

根据实际业务需求,修改函数代码并进行本地调试,完成后将代码部署至测试环境,持续观测其运行状态与性能表现,确保稳定性与功能正确性。

  1. 单击绑定域名,然后选择代码页签,使用JavaScript ES6语法开发函数。

    image

    image

  2. ESA在控制台代码开发工具右侧提供了一套调试环境,完成代码开发后,单击保存。在右侧工具栏构造HTTP的请求方法、请求头、请求体,构造完成后单击请求按钮,控制台将直接返回请求经过函数处理后的响应结果。

  3. 调试完代码后,单击生成版本

  4. 选择部署页签,单击版本发布,在弹出的对话框中选择测试环境进行发布。函数将在边缘测试节点生效,您可直接通过绑定Host的方式使用真实客户端发出请求并在客户端查看结果。

    image

步骤三:发布正式版本

测试环境运行稳定且验证通过后,可将函数代码安全发布至生产环境。

  1. 选择部署页签,单击版本发布

  2. 单击生产环境,选择待发布的版本,然后单击发布,所有生产环境的节点都将部署该版本函数代码。

    image

如何绑定自定义域名

您可以为函数绑定域名,将指定域名的全部流量转发至该函数,例如将er.example.com绑定至函数,实现全量请求由函数处理;同时,也支持通过函数路由配置URL路径规则,将某个域名下的部分路径流量精准转发至函数,例如将er.example.com/test/path/的请求路由至函数,实现灵活、精细的流量调度。

前提条件

绑定步骤

  1. 在函数和Pages界面,选择创建的函数。image

  2. 选择域名页签,通过添加域名或路由规则,将域名的流量转发至函数。

    添加域名

    将域名绑定函数后,可以直接使用该域名对函数进行访问。

    例如:您已在ESA添加了站点example.com,可以将域名绑定为er.example.com,那么er.example.comer.example.com/userer.example.com/login等请求均会被转发至边缘函数。

    1. 域名绑定区域单击添加域名

    2. 输入域名后,单击确定

      image

    说明

    NS接入的域名:绑定域名后,系统会自动添加一条DNS记录用来绑定函数。

    CNAME接入的域名:绑定域名后,会自动生成一个CNAME值,需手动在当前站点对应的域名解析服务商添加CNAME解析

    添加路由

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

    image
    1. 路由区域单击添加路由

    2. 填写路由名称,在选择站点列表中选择目标站点,例如:example.com

    3. 选择路由模式

      简单模式

      1. 填写路由名称,选择目标站点。

      2. 选择简单模式,填写路由规则。

        image

      自定义模式

      1. 填写路由名称,选择目标站点。

      2. 选择自定义模式

      3. 如果请求匹配以下规则...区域设置要匹配的用户请求特征,具体配置规则请参见规则表达式的组成

      4. 则执行…边缘函数。

        image

      • 示例1:路由填写*.example.com/*,表示任何发送到http://www.example.com/http://example.com/的请求都会被转发到函数。

      • 示例2:路由填写example.com/a*,表示任何发送到http://example.com/ahttp://example.com/a1http://example.com/api的请求会被转发到函数。

      • 示例3:路由填写www.example.com/api/*,表示任何发送到 http://www.example.com/api/ 及其子路径的请求(例如 http://www.example.com/api/usershttp://www.example.com/api/products/123)都会被转发到函数。

    4. 单击确定

    说明
    • 如果路由输入的是*.example.comwww.example.com这种带有前缀的域名,还需要在ESADNS记录中手动添加一条记录,否则访问失败。

    • 函数路由如果存在多条配置,从上至下一旦有一条匹配成功,则跳出不再执行下面的匹配。

    匹配规则

    • 路由配置必须同时包含域名主机名和路径URI信息,因此任何只包含路径URI的路由规则例如/path将无法配置。

    • 路由配置通过添加前后通配符*的方式来匹配更多请求,通配符*支持匹配零个或多个任意字符。例如example.com/*将匹配访问example.com的所有请求。

    • 路由配置区分大小写。例如example.com/aexample.com/A将是两条不同的路由规则。

    • 路由配置不支持配置中间通配符*和参数。例如example.com/*/pathexample.com/path?param=1的形式都是不允许的。

    • 当访问请求和多个路由配置都可以匹配时,将优先匹配更早配置的规则项。