8 个 FunctionGraph 云函数撑起一个待办应用:拆分边界与踩坑记录

举报
yd_236573190 发表于 2026/11/14 19:47:48 2026/11/14
【摘要】 复盘把待办清单后端拆成 8 个云函数的过程,讨论粒度选择、冷启动、共享代码打包和 APIG 网关配置里几个容易忽略的问题。

端云一体待办清单的后端用了 8 个 FunctionGraph 云函数,配合 APIG 专享版和 RDS MySQL 三张表。拆完之后回看,有几个决定值得记下来。


粒度上我按「一个业务动作一个函数」拆:注册登录、列表查询、新增、修改、删除、优先级调整、截止日期提醒、统计。好处是权限和限流可以按接口配,坏处是共享代码(数据库连接池、鉴权中间件、响应封装)要重复打包。FunctionGraph 支持层(Layer),把公共依赖做成层之后,每个函数包体积明显下降,冷启动也快了一些。


冷启动是第二个坑。函数长时间不调用后第一次请求会明显变慢,而 RDS 连接又不能在函数实例里长期持有。我的处理是把连接建立放在初始化阶段并复用,同时给 APIG 侧配了合理的超时,避免用户端直接看到网关超时。


第三个坑是环境变量。数据库地址、账号、连接池大小这些必须走函数配置的环境变量,绝不能写进代码包。案例里给的 deploy.sh 会把 .env 里的值注入到函数配置,这一步很容易被跳过,结果就是本地能跑、云上 500。


还有 idempotency。新增待办如果客户端重试,会产生两条重复记录。我在端侧给每次提交带一个客户端生成的请求 ID,服务端用它做唯一约束,重试就变成幂等。这个改动很小,但能省掉大量「为什么多了一条」的排查。


最后是验收。案例提供 verify_api.sh 做端到端检查,我建议把它接进部署流程的最后一步,而不是手动跑。云函数和网关配置任何一处改错,这个脚本都能第一时间暴露出来。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。