V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
AkinoKaedeChan
V2EX  ›  云计算

腾讯云 EdgeOne Pages 边缘函数的踩坑体验

  •  
  •   AkinoKaedeChan · 8 小时 15 分钟前 · 1017 次点击

    起因

    前些时间整了个备案域名,就想着把一些自建服务迁移回国内,原本我的 Bark 服务器是放在 Cloudflare Workers 上的,于是就想着看看能不能迁移到国内公有云的 Serverless 平台上。

    选择 EdgeOne Pages 的原因也很简单,想着也许能够免费用,于是就遇到第一个问题:

    问题

    问题 1:文档没有描述 KV 的计费规则

    我打开腾讯云的文档竟然发现完全没有描述 Pages KV 的计费规则,于是我提出售前工单询问计费规则,客服回复让我加微信群问技术支持……所以这个工单系统的作用是什么,电话总机吗?无奈还是加群问了下,技术支持表示是免费的。就算免费也得写一下吧……那好吧就用这个了,毕竟好像找不到第二个免费的……

    问题 2: CLI 中环境变量不能设置为 0

    设置环境变量为 0 表示禁用应该是挺常见的用法,一开始设置为 0 不行觉得可能是 JavaScript 0 == '' 的问题(后面一想那参数肯定是字符串啊),于是就试着设置成 "0",还是不行。在网页试了下可以设置,不过难道把环境变量设置为空字符串又是什么禁忌吗?

    > npx edgeone pages env set EXAMPLE_KEY 0
    [cli][✘] Variable name and value cannot be empty.
    > npx edgeone pages env set EXAMPLE_KEY ""
    [cli][✘] Variable name and value cannot be empty.
    > npx edgeone pages env set EXAMPLE_KEY "0"
    [cli][✘] Variable name and value cannot be empty.
    

    问题 3:启动开发环境次数有日限

    这个文档里写了,但是没写能开多少次,我这边大概不到 20 次就触发日限额了(热重载不算,但是 Debug 的时候发现热重载不是很即时就反复开了下),只能等第二天。

    这个开发环境似乎是远程在腾讯云那边起了三个 Worker ,而且对 KV 的读写会影响到生产环境(这要是真有人在重要生产环境用了怕不是会炸掉)……

    问题 4:fetch() 不支持 HTTP/2

    最后的推送代码写好的时候,发现请求 APNs 服务器的时候连接会被断开,研究半天发现是 EdgeOne Pages Edge Functions Runtime 的 fetch() 不支持 HTTP/2 ,而 api.push.apple.com 是强制使用 HTTP/2 的。我问了下腾讯的员工,说是在规划中,本来我想着可能我是第一个发现的文档没有提示也不奇怪,后面发现似乎我不是第一个问这个的……

    本来觉得又白干一天了,突然想起这个 Edge Pages 还有个 Node Functions 用的是 Node.js Runtime ,于是拿 Node Functions 写了个代理就勉强能用了。开发的过程中发现 Edge Functions 的 Catch-all 路由优先级是高于 Node Functions 所有路由的,只好把 Edge Functions 移动到了一个单独的目录下,当然这文档也没说明。

    总结

    总而言之,头疼的体验主要来自文档不清晰,其次交流严重依赖 IM 而不是工单系统,最后是非常草台的设计。

    第 1 条附言  ·  7 小时 35 分钟前

    问题 2 已在 [email protected] 中解决。

    第 2 条附言  ·  7 小时 25 分钟前
    代码仓库:<https://github.com/AkinoKaede/bark-edgeone>,有需要的可以部署一个玩玩
    11 条回复    2026-01-20 16:52:25 +08:00
    mrgeneral
        1
    mrgeneral  
       7 小时 39 分钟前
    EdgeOne 模仿 CF 搞的,摊子铺的很大,但是做好要很多细节支撑
    ccdesue
        2
    ccdesue  
       7 小时 30 分钟前
    现在国内 serverless 能替代 worker 当反代了吗?那感觉也还行
    AkinoKaedeChan
        3
    AkinoKaedeChan  
    OP
       7 小时 26 分钟前
    @ccdesue #2 HTTP 肯定是可以的只要允许对外请求就行,这个 Cloud Functions (目前只有支持 Node.js 的 Node Functions )可以支持 WebSocke ,反向代理不知道违不违反 ToS 。
    swananan
        4
    swananan  
       7 小时 16 分钟前
    体验差的原因是,这类项目想活下来或者飞速发展,得先搞定大客户,长尾或者白嫖类客户的体验暂时不会考虑
    Danswerme
        5
    Danswerme  
       6 小时 36 分钟前
    歪个楼,关于问题 4 ,Vercel 的 Edge Function 不支持 HTTP2 ,Cloudflare Workers 开发环境不支持 HTTP2 ,但线上环境支持。
    AkinoKaedeChan
        6
    AkinoKaedeChan  
    OP
       6 小时 34 分钟前
    @swananan 搞定个啥大客户,这玩意开发环境能炸掉生产环境,真有公司踩坑了那可要倒大霉了。我刚刚专门开了下 Cloudflare Workers 的开发环境,是本地模拟的,断网也能用……
    misaka19000
        7
    misaka19000  
       6 小时 34 分钟前
    腾讯云 EO 边缘节点缓存过期不要太快,我们的资源动不动就几十 KB/S 的下载速度,很垃圾
    tencentcloud
        8
    tencentcloud  
       6 小时 25 分钟前
    您好,感谢您对腾讯云 EdgeOne Pages 的详细使用反馈,对于此次体验未能达到您的预期,我们深表歉意。您指出的文档、CLI 工具、开发环境体验及功能支持等方面的问题,我们的产研团队已安排逐一跟进处理,相关进展如下:
    1 、问题一提及的相关文档将在今天完成补充完善
    2 、问题二已修复并发布,新版本的 CLI 将支持此设置
    3 、问题三会在设计上放大限制,预计今明两天发布上线
    4 、问题四会依赖底层架构,目前已在开发规划与推进中
    再次感谢您的监督与反馈!我们将持续优化产品体验、完善文档,并梳理支持流程。若还有其他疑问或建议,欢迎随时通过官方渠道与我们沟通。
    docx
        9
    docx  
       5 小时 34 分钟前 via iPhone
    EdgeOne 目前还是小打小闹的状态,全是白嫖用户保不定什么时候停服了
    dif
        10
    dif  
       2 小时 1 分钟前
    我记得 EdgeOne 有限速得嘞,所以我用了阿里云的 ESA 。不过特别希望 EdgeOne 和 ESA 能够内卷起来。
    AkinoKaedeChan
        11
    AkinoKaedeChan  
    OP
       1 小时 30 分钟前
    @dif 有限速也不奇怪吧,我这单纯 API 而且自用。ESA Pages 好像没有上述问题,但是我看文档 KV 是要收费的。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3739 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:23 · PVG 18:23 · LAX 02:23 · JFK 05:23
    ♥ Do have faith in what you're doing.