2. 主流平台快速上手:AWS Lambda、阿里云函数计算、Azure Functions、腾讯云SCF

说实话,刚接触 Serverless 那会儿,我也是先挑一个平台玩。但后来发现,不同平台虽然底层逻辑差不多,细节差异却不少。我建议你一开始就多看看几个主流平台,心里有个谱。这一章,咱们就把 AWS Lambda、阿里云函数计算、Azure Functions、腾讯云 SCF 四个平台挨个过一遍。

主流 Serverless 平台快速上手知识体系 Serverless 函数应用快速上手 – 核心概念与平台差异 快速上手核心 AWS Lambda 阿里云函数计算 Azure Functions 腾讯云 SCF • VPC 直连 • 原生事件源丰富 • HTTP 触发器便捷 • 与阿里云生态结合好 • 多运行时原生支持 • Azure AD 集成 • API 网关原生绑定 • 微信生态联动 共享:函数定义 → 触发器绑定 → 部署测试 → 日志监控 (每个平台的 CLI / SDK / 控制台流程基本一致)

2.1 AWS Lambda – 生态最成熟的老大哥

AWS Lambda 算是 Serverless 的鼻祖了。我早期项目大部分都跑在 Lambda 上,踩过不少坑,也攒了不少经验。

核心概念速览

  • 函数:代码加依赖,打包上传或在线编辑。
  • 触发器:S3、API Gateway、DynamoDB Streams、SQS……几十种。
  • 运行时:Node.js、Python、Java、Go、.NET、Ruby,还能自定义 Runtime。
  • 层(Layer):共享依赖包,我习惯把业务和依赖拆分到不同层。

快速上手步骤(控制台):

  1. 登录 AWS 控制台,进入 Lambda 服务。
  2. 点击「创建函数」,选「从头开始创作」。
  3. 输入函数名,选运行时(比如 Python 3.12)。
  4. 在编辑器里写代码,或上传 zip。
  5. 添加触发器(比如 API Gateway)。
  6. 点击「测试」,查看执行结果和日志。

我的小习惯:开发阶段一直用控制台测试,调试方便。上线前再用 IaC 工具(Terraform 或 SAM)管理。

代码示例(简单的 API 返回 JSON):

def lambda_handler(event, context):
    name = event.get('queryStringParameters', {}).get('name', 'World')
    return {
        'statusCode': 200,
        'body': f'{{"message": "Hello {name}!"}}'
    }

避坑:我曾经在生产环境忘了把 Lambda 超时时间从默认 3 秒调大,结果经常超时报错。嗯,后来加了一个 30 秒的硬上限。记得根据业务调整内存和超时,它们直接影响计费。

2.2 阿里云函数计算 – 国内最接地气

阿里云的函数计算(FC)在国内用户量很大。我做一个电商小程序的后端时用过它,HTTP 触发器非常好用。

特点一览

特性说明
HTTP 触发器可以直接暴露 URL,不需要额外网关配置。
自定义域名绑定自己的域名,不需要用 API 网关。
层/公共库类似 Lambda 的 Layer,支持 Python、Node 等。
VPC 网络可接入专有网络,访问 RDS、Redis。

控制台快速上手:

  1. 打开函数计算控制台,点击「创建函数」。
  2. 选「使用内置运行时」,选 Python 3.9。
  3. 在代码编辑区写业务,点击「部署」。
  4. 配置触发器 → HTTP 触发器。
  5. 点击「触发地址」直接测试。

我常用的命令:fun local invoke 可以在本地模拟执行,调试非常快。

你看,阿里云的 HTTP 触发器天然支持 RESTful,我在做小程序后台时,直接用它实现用户登录接口,省掉了 API 网关的费用。而且它的自定义域名配置简单,SSL 证书自带,很省心。

2.3 Azure Functions – 企业级集成典范

Azure Functions 与微软生态绑定紧密。我给一家用 Office 365 的公司做过自动化流程,感觉 Azure 的触发器类型很有特色。

关键点

  • 触发器类型:HTTP、Blob Storage、Queue Storage、Event Grid、Service Bus、Cosmos DB……
  • 运行时:.NET 是亲儿子,Java、Node、Python 也都有。
  • 执行计划:消费计划(按量计费)、高级计划(预热实例)、专用计划(固定实例)。
  • 本地开发:Azure Functions Core Tools 非常成熟,我几乎不离手。

快速创建 HTTP 函数(本地 CLI):

# 创建项目
func init MyProject --worker-runtime python
# 创建 HTTP 触发器函数
func new --template "HTTP trigger" --name HelloHTTP
# 本地运行
func start

我曾经踩过的坑:消费计划下,函数冷启动较慢。如果你是线上业务,可以考虑开启「预留实例」,或者用高级计划。

Azure Functions 的绑定非常强大。比如你声明一个输入绑定到 Azure Cosmos DB,函数只需要接收一个参数,数据自动注入进来。省掉了一堆连接代码。

2.4 腾讯云 SCF – 微信生态首选

腾讯云的 SCF(Serverless Cloud Function)与微信生态协同做得很好。我做过微信支付回调、公众号消息推送,都用的 SCF。

亮点

特性价值
API 网关原生绑定创建函数时直接绑定网关,一键生成公网 URL。
微信消息推送支持微信公众号、小程序的消息推送触发器。
COS 触发器对象存储上传图片时自动触发,适合图片处理。
云函数 SCF 层类似 AWS Layer,可挂载公共依赖。

控制台创建步骤:

  1. 进入云函数控制台,点击「新建」。
  2. 选「默认创建」,选择运行时(Python 3.6 / Node 12 等)。
  3. 写代码或上传 zip。
  4. 配置触发器 → API 网关。
  5. 点击「测试」,在线模拟事件。

我的经验:SCF 的本地调试可以用 scf local invoke 命令行,但说实话,我更习惯直接在控制台写简单函数,微信场景下多数逻辑不复杂。

举个例子,我做支付回调时,SCF 自动内置了 XML 解析能力,直接处理微信回调里的 <xml> 报文,配合 API 网关的密钥校验,安全又简单。

四个平台横向对比

维度AWS Lambda阿里云 FCAzure Functions腾讯云 SCF
免费额度100万次/月100万次/月100万次/月100万次/月
HTTP 触发器需 API Gateway原生支持原生支持原生支持
原生 VPC✅✅✅✅
层/共享依赖✅ Layer✅ 层✅ NuGet / pip 缓存✅ 层
国内访问速度较慢(需加速)极快一般极快
微信生态需自建一般无深度集成

给新手的选择建议:

  • 如果你主要服务海外用户,选 AWS Lambda。
  • 如果你主要服务国内用户,且阿里云用得多,选阿里云 FC。
  • 如果你用 Azure 生态或 .NET 技术栈,选 Azure Functions。
  • 如果你做微信小程序/公众号,腾讯云 SCF 是首选。

好了,这章我们一口气看了四个主流平台。你可能会想:“到底选哪个?”说实话,我刚开始也纠结。后来我养成了一个习惯:先用阿里云 FC 做快速原型,因为它在国内上手最快;之后根据业务需要再迁移或扩展。重要的是理解 Serverless 的核心思维——写函数、绑定触发器、监控日志。平台只是外壳。