华为云函数计算 FunctionGraph 入门实战:3 步写一个不用管服务器的接口
想给小程序加一个“查天气”接口,传统做法是买一台云服务器、装环境、配 Nginx、再操心它半夜会不会挂掉。函数计算(FunctionGraph)把这些都省了:只写一个函数,平台负责运行、扩容和收尾,没人调用就不花钱。下面用 3 步写出第一个能用的接口。
1. 先想清楚:函数只干一件事
函数计算里一个函数就是一段完成单一任务的代码,比如“收到城市名、返回一句话”。别一上来就把登录、查库、发短信全塞进一个函数里,拆开写、每个函数只干一件事,出了问题也好定位。
以一个最简单的问候接口为例:收到请求里的名字,就返回一句问候。代码本身只有十几行,重点不在语言,而在想清楚输入是什么、输出是什么——输入是请求里带的参数,输出就是函数返回的内容,平台会把它原样交给调用方。
新建函数时先选运行环境,比如 Python 3.10,再选触发器。触发器就是“什么时候跑这个函数”:最常用的是 HTTP 触发器,生成一个网址,别人访问这个网址函数就跑一次;也可以选定时触发器,每天固定时间跑一次,比如每天早上 8 点自动汇总一次数据。
2. 写函数:入口、参数、返回缺一不可
一个能跑的函数有三个要素:入口、参数、返回。以 Python 为例:
def handler(event, context):
name = event.get("name", "朋友")
return {
"message": f"你好,{name},这里是我的第一个函数"
}
handler 是入口,平台调用它来执行函数;event 里装着调用方传来的参数,比如网址后面带的 ?name=小明;返回值就是调用方拿到结果。第一次写先别加数据库、别调第三方接口,就让它原样返回一句话——先跑通,再加东西。
写完点“测试”,在测试事件里填一个名字,点运行,看到返回里有那句问候,就算跑通了。测试没过先看日志:函数计算的日志会原样显示报错行,多数是缩进、少了括号这类小问题,改完再测一次,不用重新部署整个服务。
3. 挂上触发器,再想想花钱的事
函数跑通后,挂一个 HTTP 触发器,平台会给一个公网地址。用浏览器打开这个地址、后面带上参数,就能看到返回的问候语——到这一步,接口就算对外可用了。
费用方面记住两点:第一,按调用次数和运行时间计费,没人调就不花钱,适合访问量不稳定的小接口;第二,给函数设一个合理的超时时间,比如 3 秒就够的接口别设成 30 秒,超时太长、出错时白白烧掉的运行时间也多。刚开始用每月免费额度练手,等调用量上来了再看账单决定要不要加配置。
新手最容易踩的三个坑
第一,别在函数里写死密码和密钥。调用别的服务要用的 AK/SK,放在平台的环境变量里,代码里只读变量名,别把钥匙写进代码、更别提交到公开仓库。
第二,函数是“用完即走”的,别指望它在内存里长期保存数据。两次调用之间可能换了机器,上次存在内存里的东西下次不一定还在;要存的数据放数据库或对象存储里。
第三,冷启动是正常的:函数很久没人调,第一次调用会多花一两秒初始化。个人小项目完全可以接受,别为了这点延迟去买常驻实例;访问量大了再考虑预留实例。
小结
一个函数只干一件事,入口、参数、返回先跑通,再挂触发器对外提供服务。先写一个返回问候语的函数、测通了、再挂上 HTTP 地址,这三个动作跑通了,Serverless 就算入门了。下一步可以试试让函数去读一次对象存储里的文件,或者每天定时跑一次汇总——都是同一个套路。
- 点赞
- 收藏
- 关注作者
评论(0)