华为云函数计算 FunctionGraph 入门实战:3 步写一个不用管服务器的接口

举报
yd_252976195 发表于 2026/11/10 17:54:29 2026/11/10
【摘要】 想给小程序加一个“查天气”接口,传统做法是买一台云服务器、装环境、配 Nginx、再操心它半夜会不会挂掉。函数计算(FunctionGraph)把这些都省了:只写一个函数,平台负责运行、扩容和收尾,没人调用就不花钱。下面用 3 步写出第一个能用的接口。 1. 先想清楚:函数只干一件事函数计算里一个函数就是一段完成单一任务的代码,比如“收到城市名、返回一句话”。别一上来就把登录、查库、发短信全...

想给小程序加一个“查天气”接口,传统做法是买一台云服务器、装环境、配 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 就算入门了。下一步可以试试让函数去读一次对象存储里的文件,或者每天定时跑一次汇总——都是同一个套路。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。