aws-sam-typescript-webpack-backend Monorepo部署方案
aws-sam-typescript-webpack-backend 的结构思路挺清晰,每个 Lambda 函数都是独立的包,还能共享代码,不会一份逻辑写好几遍。这套方案比较适合做中大型项目,尤其是你在搞 Monorepo 的情况下,Webpack 配合 Lambda Layer 可以把依赖打得干净,部署包超小,上传快、冷启动也快。
用AWS SAM搭后端的时候,最大的问题之一就是本地调试 Monorepo 超麻烦。这个仓库就挺聪明,把Yarn workspace、TypeScript和Webpack配一起,了 SAM 默认不支持 Monorepo 的尴尬。你不需要再搞什么复杂路径映射,直接写业务逻辑就行。
每个函数目录里都能单独配置自己的handler.ts
,打包的时候通过 Webpack 去掉没用的依赖,基本就一个小几百 KB 的包,贼干净。要复用工具类或中间件,也不用复制粘贴,在shared
模块里统一维护,用 Layer 搞定。
部署方式也是按函数来拆的,虽然是 Monorepo,但每个函数都可以单独构建、部署,配合 CI/CD 自动化还蛮省心。哦对了,写单元测试也顺,项目结构一目了然,用jest
测就行。
如果你正在折腾Serverless + TypeScript + Monorepo,又觉得 SAM 太死板,可以看看这个项目。哪怕不照搬,用来参考项目结构和 Webpack 配置也有价值。
aws-sam-typescript-webpack-backend-main.zip
预估大小:39个文件
aws-sam-typescript-webpack-backend-main
文件夹
.gitignore
62B
functions
文件夹
package.json
480B
get-customer-by-id-function
文件夹
package.json
270B
src
文件夹
domain
文件夹
get-customer-by-id-repository.ts
164B
get-customer-by-id-service.ts
502B
198.29KB
文件大小:
评论区