• lambda:函数计算

  • api gateway:API 网关

  • aws waf:web 应用防火墙

  • cloudfront:cdn

  • s3:对象存储

  • cloudwatch:监控、日志

  • codepipeline:CI CD

# 应用场景

# 优点

  • 开发者无需关心服务器运维,比如 nodejs 版本、操作系统环境、arm/x86 架构等问题,只需关心代码逻辑

  • 按量计费:调用次数 x 计算时间 x 内存大小,前一百万次免费

  • 高性能、高并发(自动扩容)、高可用(多可用区域部署)、高安全(权限控制、role、vpc、安全组)

  • 快速迭代

  • 生态健全:日志监控开箱即用、版本控制、CI CD、数据库、静态资源存储、框架支持(express、koa、nestjs、nextjs)

  • 边缘部署(也是面试回答性能优化的一个点)

# 缺点

  • 冷启动:第一次调用时,需要加载运行环境,会有一定的延迟。控制得好 nodejs 800ms 以内

  • 限制:最大执行时间 15 分钟(做不了 websocket 服务,因为 websocket 需要一直连接着),内存 128MB-10GB

  • 强关联云厂商

# 如何创建 AWS 云上资源

  • sam(底层就是 cloudformation,做了一层封装)

  • cloudformation:配置类型

  • cdk:可以用多种编程语言 ts、python、java、c# 等编写

  • terraform 跨云

  • sst(刚接触 serverless 想要快速落地推荐这个)

    • v3:terraform
    • v2:aws cdk

# 如何部署

# 云服务厂商

  • aws:lambda、step function(所有语言都支持,自定义容器 docker),lambda@edge(只支持 python、js)

  • cloudflare worker(只支持 js)

  • google cloud function

  • 阿里云:FC、SAE(自定义容器)、EdgeRoutine(边缘部署)

  • 腾讯云

  • 华为云

# 如何解决 15 分钟限制

  • 分批处理 step function

  • 异步调用

# 解决 nodejs 高并发问题的标准答案

使用 serverless

# 学习资源

上次更新时间: 2025年09月21日 00:33:57