ESA Pages 体验之旅(1):为什么选择 ESA Pages
我想做一个界面简洁、尽量减少广告干扰的搜索页,接入 DeepSeek Search,让用户通过自己的网页查询资料。前端采用 Vue 技术栈,最后用 Nuxt 生成静态页面;搜索 API 的密钥则需要留在服务端,不能随着前端 JavaScript 发到浏览器。
页面本身可以放到 OSS,但 API 还需要另一个执行环境。这个项目没有常驻服务器,我也不想为了几条接口增加服务器维护。域名已经在阿里云,尚未备案,希望先采用允许境外接入的方案,用较低成本验证整个流程。
ESA 的函数和 Pages符合这几个条件:静态文件交给 Pages,轻量 API 放进边缘函数,两者可以通过同一个域名访问。免费能力便于先跑通应用,也不需要自己安装和维护 Web 服务。因此,这个项目选择了 ESA Pages。
选定平台后,费用仍要分开算。站点套餐管理加速与安全能力,函数模式管理调用额度,HTTPS 证书又有自己的数量和覆盖规则。Pages 项目是部署单元,增加一个项目不一定需要再买一份站点套餐。
以下价格、额度和产品规则核对于 2026-10-29;账号是否拥有活动额度,以控制台为准。
站点、项目和函数
ESA 的站点通常围绕接入的域名建立,例如 example.com。关联套餐之后,这个站点可以承载多个子域名,再分别接入不同的 Pages 项目。
这几个名词的职责分别是:
| 对象 | 负责什么 | 容易混淆的地方 |
|---|---|---|
| 阿里云账号 | 管理资源与账单;领取免费套餐;设置函数模式 | 不是全账号只能选一种站点套餐 |
| ESA 站点及套餐 | 加速、安全、规则、流量与证书配置 | 多个应用可以共享同一站点资源 |
| Pages 项目 | 保存静态产物、函数代码与部署版本 | 不是每个项目各自获得一份站点套餐 |
| 访问域名 | 决定浏览器连接到哪个服务 | 同一根域名下不必全部经过 ESA |
| TLS 证书 | 证明并覆盖访问的域名 | 覆盖域名不等于自动接入应用 |
例如采用 CNAME 接入,让 app.example.com 指向 Pages,根域名与其他子域名仍可使用原服务。将根域名加入 ESA 站点,不会自动将全部子域流量转给 ESA。
同一个账号也可以为另一个站点购买付费套餐,不会要求现有免费站点一起升级。默认免费套餐领取限制为每 UID 一份,活动可能追加名额。免费套餐说明
免费版与付费套餐
免费版、基础版、标准版和高级版属于 ESA 的站点套餐,主要比较流量、规则数量和安全能力。
| 站点套餐 | 目录月价 | 套餐流量与主要边界 |
|---|---|---|
| 免费版 | 0 元 | 套餐范围内流量和请求不计费,但有限速、能力与使用场景限制,无 SLA |
| 基础版 | 9.9 元 | 50 GB/月,更多基础规则与支持能力 |
| 标准版 | 375 元 | 500 GB/月,增加 API、安全与即时日志等能力 |
| 高级版 | 3,600 元 | 3,000 GB/月,进一步增加安全及规则能力 |
基础套餐费用列出了付费价格与包含流量。免费版面向个人项目、开发测试与非核心场景,有访问和能力限制,也没有 SLA。本项目先用它验证流程,需要精细匹配字段或防护规则时,再逐项核对套餐。
例如,基础版官方示例用量为 110 GB,超出包含的 50 GB 后,按 0.198 元/GB 计算,得到 9.9 + 60 × 0.198 = 21.78 元。这笔费用只包含该例的站点套餐与流量,应用的函数、数据库和上游接口另算。
函数还有另一套账号级模式。当前文档的免费模式为全账号每日合计 10 万次函数请求、20 个函数、单函数 5 个版本;超出当日请求额度会返回 503。付费模式按函数执行次数计费,目录价为 5 元/百万次,其他增值服务和流量另算。函数与 Pages 计费
站点套餐与函数模式独立设置,可以分别升级。日志也要按产品核对,例如免费函数模式不支持日志投递。
静态资源与函数调用的费用
Pages 对外访问产生的流量使用关联站点的套餐流量,动态函数调用按函数规则计算。当前使用限制还包括每项目最多 2,000 个静态文件、单文件最大 25 MB,函数 JavaScript 单文件最大 4 MB。Pages 使用限制
一次 API 请求可能同时涉及函数执行、上游接口、数据库与对外传输,应用总费用需要分别计算;缓存命中只会减少其中一部分工作。
函数路由是请求匹配规则。例如 example.com/api/* 将 /api/items 与 /api/profile 交给同一个入口,入口再按路径分发。一个部署函数可以提供多个 HTTP 接口,路由条数、函数数和接口数分别统计。
还要注意域名绑定与路径路由的差别:域名绑定覆盖整个域名,路径路由只匹配指定范围;哪些静态请求会进入函数,要结合实际绑定、静态分发行为与用量监控核对。域名与路由配置
证书数量与域名覆盖
免费版当前支持 5 张 Let’s Encrypt 免费证书、2 张上传的自定义证书;基础版对应为 10 张和 5 张。这里统计的是站点中的证书配置数量,不是每年签发次数。边缘证书配额
ESA 的 Let’s Encrypt 证书支持精确域名和通配符,单张最多包含 50 个域名条目。例如同一张证书包含:
example.com
*.example.com
可以覆盖根域名,以及 search.example.com、docs.example.com 这一级子域名。只有 *.example.com 时,不覆盖 example.com;也不覆盖 a.search.example.com 这种更深层主机名。
一张证书可以覆盖多个应用域名,实际数量取决于域名条目和层级。DNS、Pages 域名绑定与路由仍需另外配置,证书负责 HTTPS 名称匹配。
ESA 签发的免费证书会自动续期,不支持下载。它保护浏览器到 ESA 的连接,不能取出来直接配置到 OSS。若浏览器直连 OSS,仍需要在 OSS 所在入口配置适用的证书;若 ESA 通过 HTTPS 回源,ESA 到源站的 TLS 又是另一段连接。
边缘证书与个人测试证书
数字证书管理的个人测试证书与 ESA 免费边缘证书分别计算额度,部署位置与续期方式也不同。
截至核对日期,个人测试免费证书按实名认证主体每自然年最多领取 20 张,单张有效期 90 天;同一主体的多个账号共享这份额度。到期重新申请和部署会再次消耗额度,因此 20 张不能理解成 20 个子域名可以全年持续使用。ESA 的证书池数量与自动续签不按这份年度领取额度计算。个人测试证书规则
| 证书来源 | 部署位置与导出 | 续期责任 |
|---|---|---|
| ESA 签发的免费边缘证书 | 仅在 ESA 内使用,不可下载 | 平台自动续期,仍要关注失败通知 |
| 个人测试证书 | 可下载部署,产品定位为测试 | 重新申请与替换受该产品规则约束 |
| 自有证书上传 ESA | 在站点证书池中配置 | 需要自行更新,上传并不转为平台自动续期 |
| 自行通过 ACME 申请证书 | 可用于支持的自有入口 | 自己负责验证、续期、部署和告警 |
个人测试证书 Pro 的服务周期为六个月,不支持直接续费和自动托管,到期前仍要重新购买、申请和部署。官方提示这类测试证书不保证 OCSP 稳定性,正式业务建议选择正式证书。
自行运行 ACME 可以减少手工换证,但仍需保管账户密钥、完成域名验证、部署新证书并处理失败通知。这个项目的 HTTPS 入口由 ESA 承接,因此优先使用平台管理的边缘证书。
境外接入与免费版的使用范围
域名没有备案时,需要按接入规则选择允许的境外加速范围。例如站点采用不含中国内地的接入范围,数据库放在中国香港,也不能据此推导出「每次函数都固定执行在香港」。边缘节点会按平台调度,网络与数据地域要分别确认。
免费版是否够用,应同时核对用量与所需能力。增加应用前先判断能否共享站点;需要精细防护、日志或其他能力时,再按缺口和实际用量比较升级。
确定站点、函数模式和域名后,就可以准备静态页面与 API 的部署文件。这几个对象分别配置,费用和运行问题也能找到对应位置。