FunctionGraph 入门:从概念到第一个云函数

举报
yd_219600272 发表于 2026/10/24 11:09:42 2026/10/24
【摘要】 提到 Serverless,很多开发者第一反应就是“不用管服务器”。华为云的函数计算服务 FunctionGraph,正是这种理念的落地形态:你只管写业务代码,资源的调度、扩缩容、运维都由平台完成。本文带你从零认识 FunctionGraph,并动手创建第一个云函数。 一、FunctionGraph 是什么FunctionGraph 是华为云提供的无服务器(Serverless)函数计算服务...

提到 Serverless,很多开发者第一反应就是“不用管服务器”。华为云的函数计算服务 FunctionGraph,正是这种理念的落地形态:你只管写业务代码,资源的调度、扩缩容、运维都由平台完成。本文带你从零认识 FunctionGraph,并动手创建第一个云函数。

一、FunctionGraph 是什么

FunctionGraph 是华为云提供的无服务器(Serverless)函数计算服务。它以“函数”为最小部署单元,你上传代码后,平台负责运行环境的准备、实例的创建与回收。

和传统方式对比:

  • 传统方式:买云服务器 → 装环境 → 部署应用 → 自己处理扩缩容和故障恢复。
  • FunctionGraph:写一个函数 → 配置触发器 → 有事件来就执行。没请求时不占用资源,按实际执行付费。

它特别适合事件驱动、流量波动大、或者还在验证阶段的业务:比如 Webhook 回调、定时任务、图片处理、物联网数据上报等。

二、四个核心概念

1. 函数(Function)

函数是代码的载体,由入口方法(handler)、运行时、内存规格等组成。平台支持 Python、Node.js、Java、Go 等多种运行时,创建时选择与业务语言匹配的即可。

2. 触发器(Trigger)

触发器定义了“什么事件会唤起函数”。常见类型:

  • APIG 触发器:通过 API 网关把函数暴露为 HTTP 接口;
  • 定时触发器:按 Cron 表达式周期执行,如每天凌晨跑批;
  • OBS 触发器:对象存储中有新文件上传时自动触发处理;
  • LTS/SMN 等:日志、消息通知等事件源。

一个函数可以绑定多个触发器,灵活组合。

3. 版本与别名

每次发布代码会生成一个新版本(v1、v2……),别名则指向某个版本。生产流量走别名,灰度或回滚时只需切换别名指向,发布更安全。

4. 预留实例

默认情况下,无请求时实例会缩容到 0,新请求到来要经历“冷启动”。对延迟敏感的接口,可以配置预留实例,提前预热好一批热实例,请求直接命中,基本消除冷启动。代价是预留实例会产生常驻费用,适合核心链路按需配置。

三、计费怎么看

FunctionGraph 的计费主要看三个维度:调用次数、执行时长、内存规格。

  • 内存规格越大,分配的 CPU 能力越强,执行越快,但单价也越高;
  • 执行时长按 GB-秒累积,代码跑得快就花得少;
  • 合理设置内存和超时时间,是控制成本的关键。

新手建议:先用小规格跑通逻辑,再通过实测数据调大规格,不要一上来就选最大配置。

四、动手:创建第一个云函数

在控制台按以下步骤操作,全程约五分钟:

  1. 进入 FunctionGraph 控制台,点击“创建函数”,选择“创建空白函数”;
  2. 运行时选择 Python,函数名自定义,内存保持默认;
  3. 在代码编辑区写入入口方法,例如:
def handler(event, context):
    name = event.get('name', 'world')
    return {
        'statusCode': 200,
        'body': f'Hello, {name} from FunctionGraph!'
    }
  1. 点击“部署”,等待部署完成;
  2. 使用“测试”功能,构造一个测试事件 {"name": "开发者"},点击执行,观察返回结果和日志;
  3. (可选)为函数添加 APIG 触发器,即可通过 HTTP 地址在浏览器里调用它。

到这里,你已经拥有了一个按需运行、无需维护服务器的云函数。

五、典型应用场景

  • Web API 后端:配合 API 网关,快速搭建无服务器的 REST 接口;
  • 定时任务:定时触发器替代常驻的 Cron 服务器,如数据同步、报表生成;
  • 文件处理流水线:OBS 上传触发图片压缩、转码、内容审核;
  • 事件粘合层:在消息队列、数据库变更等事件之间做轻量编排。

六、新手常见的四个坑

  1. 冷启动:低频函数首次调用延迟较高。核心接口用预留实例,非核心链路可接受或用定时预热折中。
  2. 依赖包过大:代码包越大,下载解压越慢。只打包必需依赖,大依赖考虑延迟加载。
  3. 超时设置不合理:默认超时较短,长任务记得调大,并配合异步调用避免前端等待。
  4. 连接不复用:数据库连接、HTTP 客户端放在 handler 之外初始化,实例复用时直接复用,避免每次调用重复建连。

七、小结

FunctionGraph 把“写代码”和“运维服务器”解耦:函数承载逻辑,触发器连接事件,版本别名保障发布,预留实例兜底延迟。掌握这四个概念,再亲手部署一个 Hello World,Serverless 的开发体感就建立起来了。下一步可以试着给函数加上 APIG 触发器,或者用 OBS 触发器做一个自动处理上传文件的小流水线,在实践中继续加深理解。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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