跳到正文

ESA Pages 体验之旅(1):为什么选择 ESA Pages

ESA Pages 体验之旅 · 第 1 篇(当前) · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9

我想做一个界面简洁、尽量减少广告干扰的搜索页,接入 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 的部署文件。这几个对象分别配置,费用和运行问题也能找到对应位置。