很多团队的代码逻辑本身并不复杂,麻烦往往出在服务器上:要买机器、装环境、配扩容,业务低谷时机器照样计费。阿里云函数计算(Function Compute,简称 FC)换了一种思路。你上传代码、设好触发条件,运行、扩缩容和资源调度都由平台处理,费用按实际调用算。

阿里云函数计算是什么
函数计算是阿里云的事件驱动型无服务器(Serverless)计算服务。你把一段业务逻辑写成函数,事件发生时它自动执行,比如有人上传了图片、到了设定时间、收到一条 HTTP 请求。执行结束,实例释放,这段时间不再计费。
语言方面,Python、Node.js、Java、Go、PHP、.NET 都支持。如果环境特殊,也可以用自定义运行时或自定义容器镜像。团队如果已经在用 OSS、消息队列、日志服务,函数计算能直接接入,不用额外搭桥。
先搞清三个概念:服务、函数、触发器
上手前,这三个词最好分清楚,后面配置时才不会乱。
- 服务(Service):函数的逻辑分组,一般对应一个业务模块。同一服务下的函数可以共享日志、权限和网络配置,管理起来省事。
- 函数(Function):真正执行代码的单元,里面有运行时、内存规格、超时时间和入口函数。
- 触发器(Trigger):决定函数什么时候跑。常见的有 HTTP 触发器、OSS 事件触发器、定时触发器(Cron 表达式)和消息队列触发器。
函数还支持版本和别名。新版本上线时,先让别名指向新版本,只放一小部分流量验证;没问题再全量切换。出了问题,把别名切回旧版本就行,不用重新部署。
三个典型场景
以下三个是常见的架构思路,具体怎么做要看你自己的业务。
上传图片后自动生成缩略图
某内容平台每天有大量封面图上传。原来是一台常驻服务器轮询 OSS 目录生成缩略图,夜里闲置,白天高峰时又容易积压。改成函数计算后,流程是:用户把图片传到 OSS 指定目录,OSS 事件触发函数,函数读取原图,按预设尺寸生成多张缩略图写回另一个目录,处理结果写入日志服务,失败记录也能在那里查。
上传量大时,函数会自动并发;上传少时,几乎不产生成本。轮询程序和服务器补丁也不用再管了。
每天早上自动推送运营日报
一个电商运营团队每天要汇总前一天的订单、退款和活动数据,发到企业微信群。过去由同事手动导出 Excel,要花半小时,还经常因为导出时间不一致,数据对不上。
现在配一个定时触发器,每天 8 点执行。函数从数据库拉数据,算出关键指标,生成摘要,再通过企业微信机器人的 Webhook 发到群里。每次运行只有几十秒,全年费用主要就是这几十秒的执行时长,比一台长期开着的云服务器省得多。
订单事件异步通知
一家小型零售商的下单接口要通知仓库、短信和积分系统。如果在接口里同步调这三个服务,任何一个超时,用户下单都会变慢。
改法是:下单接口只负责写订单,并往消息队列发一条消息。队列触发函数,函数再分别调用仓库、短信和积分接口。某个下游失败时,函数按重试策略再跑一次,用户已经完成的支付不受影响。注意下游接口要做好幂等,否则重试可能重复发短信。
计费怎么算,怎么控制成本
费用主要由三部分构成:调用次数、资源使用量(一般按内存规格乘执行时长),以及部分场景下的公网流量和关联服务费用。具体单价和每月免费额度会调整,请以阿里云官网价格页为准,别拿文章里的数字当依据。
实际控制成本时,有几点值得留意:
- 内存不是越大越好。内存高,单位时间费用也高,但执行可能更快。建议用压测找一个总成本最低的规格。
- 超时时间要设合理。外部接口没响应、代码陷入死循环时,超时设置是最后一道保险,否则会一直计费。
- 高频且结果稳定的请求可以加缓存,重复计算就省下来了。
- 定期看账单和调用统计。调用量突然翻倍,往往是触发器配错或者有人在循环调用,早发现早处理。
冷启动怎么办
函数一段时间没有请求,实例会被回收。下次请求进来时要重新加载运行环境,多出来的这段耗时就是冷启动。Java 这类启动较慢的运行时,感受会更明显。
常见的应对办法有三个:
- 精简依赖,只打包运行时真正需要的库,加载会快一些。
- 把数据库连接、配置读取放到初始化阶段,让后续请求复用,而不是每次都重新建立。
- 对延迟敏感的接口,配置预留实例让一部分实例常驻。要注意,预留实例会产生固定费用,只给真正需要低延迟的接口用。
上手步骤
- 在阿里云控制台开通函数计算,并配置 RAM 权限。权限只给函数访问所需资源的最小范围,别直接给管理员权限。
- 创建服务,再创建函数,选运行时,上传代码或直接用示例模板。
- 添加触发器。接口测试先用 HTTP 触发器,周期任务用定时触发器。
- 调用一次函数,在日志里确认输出是否符合预期。
- 设置监控告警,重点盯调用失败率、执行时长和费用变化。
第一次用,建议挑一个小函数试点,比如日志清洗或定时通知。跑稳了,再把更复杂的业务迁过去。