Serverless无服务架构应用搭建
零基础Serverless无服务架构搭建实战
很多人觉得 Serverless(无服务架构)很神秘,好像不需要服务器就能运行代码。
其实它只是把服务器管理的工作交给了云平台,你只需要写代码、配置触发器,剩下的扩容、运维全部由平台搞定。
今天我就以阿里云函数计算(FC)为例,带你亲手搭建一个可访问的 HTTP 函数,整个过程不写一行复杂的配置文件,纯小白也能看懂。
搭建前需要准备什么
- 一个阿里云账号:如果还没有,去官网注册并完成实名认证。注意新用户通常有免费额度,可以放心玩。
- 一点基础概念:知道函数计算里“函数”就是一个代码片段,“触发器”就是让这个代码被外部访问的入口。我们这里用 HTTP 触发器,这样浏览器直接访问就能看到结果。
- 可选工具:如果你喜欢命令行,可以安装 Serverless Devs CLI(官方推荐),但本文全程用 Web 控制台操作,零门槛。
一步步创建你的第一个函数
- 登录阿里云控制台,搜索“函数计算 FC”,进入管理页面。
- 点击左侧“服务及函数” -> 创建一个服务,服务名称随便填,例如
my-first-service,描述可省略。 - 在刚创建的服务里点击“创建函数”,选择 使用内置运行时创建(选 Node.js 或 Python 都行),函数名填
hello-world,运行环境按你熟悉的选。 - 在函数代码编辑器中,你会看到默认的 index.js 或 main.py。把代码替换成下面这个最简单的 HTTP 响应(以 Node.js 为例):
var getRawBody = require('raw-body');
module.exports.handler = function(req, resp, context) {
resp.setStatusCode(200);
resp.setHeader('content-type', 'text/plain');
resp.send('Hello, Serverless!');
};
- 点击“创建触发器”,触发器类型选 HTTP 触发器,认证方式选“无需认证”(仅测试用),开放公网访问。创建成功后你会得到一个类似
https://xxx.fc.aliyuncs.com/2016-08-15/proxy/...的 URL。 - 点击“部署”并“测试”,浏览器直接打开那个 URL,如果看到
Hello, Serverless!就算成功了。
常见报错和解决办法
- 报错 502 Bad Gateway:通常是因为代码语法错误或入口函数未导出。检查函数配置里的“入口方法”是否和代码中的导出名称一致(比如 Node.js 要用
module.exports.handler)。 - 报错 403 Forbidden:HTTP 触发器的认证方式选了“签名认证”但没带签名。测试阶段一定选“无需认证”。
- 函数超时:默认超时 3 秒,如果你的代码包含数据库查询或外部请求,记得在函数配置里把超时时间调大(比如 30 秒)。
测试与效果验证
除了直接浏览器访问,你还可以用 curl 命令验证(Windows 用 Git Bash 或 WSL 都行):
curl https://你的函数URL
如果是 POST 请求,可以加上 -X POST -d 'test'。
另外在函数计算控制台点击“调用日志”,能查看每次调用的耗时、内存使用情况,这些都是排查问题的好帮手。
避坑提醒:免费额度与安全
- 不要在生产环境用“无需认证”,否则任何人都可能调用你的函数,产生大额账单。至少改为“签名认证”或接入 API 网关做鉴权。
- 注意免费额度范围:阿里云每月有 100 万次调用免费,但超出后按量计费。为了不意外欠费,建议给账户设置消费限额提醒。
- 冷启动问题:函数长时间无调用后,第一次访问会慢几秒(冷启动)。如果对延迟敏感,可以考虑预留并发实例(不过会消耗更多资源)。新手阶段暂时不用管这些。
按照上面的步骤操作,你已经在云上跑通了一个完整的 Serverless 应用。
后续可以尝试接入数据库、上传文件等进阶功能,原理都差不多。
遇到报错时优先检查函数代码、触发器配置和日志,通常能快速定位问题。