华为云 FunctionGraph 函数工作流:Serverless 入门与触发器
【摘要】 函数工作流(FunctionGraph)是华为云的 Serverless 计算服务,把代码上传即可运行,不用管服务器。本文以一个 HTTP 触发的函数为例,讲清函数、委托、触发器的关系。
函数工作流(FunctionGraph)是华为云的 Serverless 计算服务,把代码上传即可运行,不用管服务器。本文以一个 HTTP 触发的函数为例,讲清函数、委托、触发器的关系。
什么时候用函数
适合突发、低频、事件驱动的场景:定时任务、Webhook 回调、文件上传后处理、API 后端。不适合长连接、常驻内存、单次运行超过 15 分钟的任务。
创建第一个函数
- 进入 FunctionGraph 控制台,创建函数,运行时选 Python 3.10 或 Node.js 18。
- 选择「事件函数」,代码入口形如
index.handler:
import json
def handler(event, context):
body = json.loads(event.get("body") or "{}")
name = body.get("name", "world")
return {
"statusCode": 200,
"headers": {"Content-Type": "application/json"},
"body": json.dumps({"message": f"hello, {name}"}, ensure_ascii=False),
}
- 创建 APIG 触发器,把函数挂到一个 API 路径上,即可通过 URL 调用。
触发器类型
- APIG 触发器:对外提供 HTTP(S) 接口。
- 定时触发器:按 Cron 表达式触发,适合定时统计、清理。
- OBS 触发器:对象上传/删除时触发,做图片处理、日志解析。
- SMN/DMS 触发器:消息驱动的异步处理。
几个实践要点
- 依赖管理:第三方库要一起打包成 zip 上传,或用「依赖包」功能挂载;纯标准库最省事。
- 并发与预留实例:冷启动有延迟,对延迟敏感的接口配置「预留实例」预热。
- 超时与内存:默认超时 3 秒,按需调到 30 秒内;内存越大 CPU 配额越高,CPU 密集型适当调大内存反而更快。
- 日志:函数日志自动写入 LTS,排查问题时看
context.getLogger()的输出。
把触发器和函数解耦,用事件驱动把零散任务串起来,是 Serverless 最舒服的用法。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)