用函数工作流 FunctionGraph 编排云上小任务的实践笔记
【摘要】 记录把重复性日常自动化小活通过华为云函数工作流 FunctionGraph 编排串联的实践笔记,包含独立函数拆分、顺序编排与输入输出映射、异常分支重试及 LTS 日志排查。
最近把几个零散的小任务用华为云函数工作流 FunctionGraph 串了起来,整体体验比预想中顺手,记录一下过程和几个关键点,供有同样需求的同学参考。
一、场景
日常有几类重复性的小活:定时拉取一份数据、做简单清洗、把结果写到对象存储 OBS、再发一封通知邮件。以前是分别写脚本挂在服务器上跑,机器一维护就容易漏。FunctionGraph 是 Serverless 形态,函数不用管服务器,工作流负责编排顺序和失败重试,正好对症。
二、做法
第一,把每一步拆成独立函数:拉取、清洗、落盘、通知,函数之间只通过事件和上下文传数据,不共享本地状态;第二,在工作流里按顺序编排节点,每个节点配置好输入输出映射,上一步的输出字段直接映射到下一步的入参;第三,给关键节点加重试和异常分支:拉取失败自动重试两次,仍失败就走通知分支发邮件告警,而不是让整个流程静默失败;第四,定时触发用定时触发器配置 cron 表达式,注意时区按北京时间核对一遍,避免差 8 小时;第五,日志统一打到云日志服务 LTS,排查时按工作流执行 ID 就能把一次执行的全链路日志串起来看。
三、踩过的坑
- 函数默认超时比较短,长任务要提前把超时调大,并把大文件处理改成流式读写,别一次性把文件全读进内存;
- 环境变量里放配置可以,但敏感信息不要明文写死,用密钥管理服务托管,函数运行时再读取;
- 本地调试时打印的上下文对象结构和云上略有差异,第一次上线前建议先用测试事件跑通全流程,再接定时触发。
四、小结
FunctionGraph 这类 Serverless 编排适合“步骤明确、单步不重”的自动化小任务:免运维、按量付费、失败可重试。复杂长事务还是老实上服务,但日常运维自动化这一档,它确实省心。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)