玩转阿里云函数工作流(一)——秒级定时触发器

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 前言 阿里云函数工作流 Function Flow(FnF),是一个用来编排分布式任务的 Serverless 云服务,方便用户将大型复杂的任务拆分为更小的子任务,用户可按需设计子任务之间的执行顺序和跳转流程,并可实时跟进子任务的执行状态和针对子任务设计错误处理。

前言

阿里云函数工作流 Function Flow(FnF),是一个用来编排分布式任务的 Serverless 云服务,方便用户将大型复杂的任务拆分为更小的子任务,用户可按需设计子任务之间的执行顺序和跳转流程,并可实时跟进执行状态和设计错误处理。极大简化业务开发流程跳转、错误处理,让用户更聚焦于业务逻辑的开发。

阿里云函数计算 Function Compute(FC),旨在帮助用户采用弹性伸缩、动态分配资源的方式来执行业务函数。让用户无需购买部署服务器,无需考虑业务负载,就能快速搭建可处理高并发的后台服务。

函数计算定时触发器支持定时执行用户函数,目前定时粒度只支持分钟级别。本文介绍如何使用函数工作流来进一步的实现函数秒级定时触发。

整体框架

借助于 FnF 提供的 task 任务步骤wait 等待步骤foreach 并行循环步骤,很方便的实现对 FC 函数调用或定时调用。以下介绍如何实现秒级定时调用 FC 函数 timer-handler
image

执行流程如下:

  1. FC 定时触发器分钟级别触发 timer 函数
  2. timer 函数使用 FnF SDK 执行工作流
  3. 工作流中 task 步骤调用 timer-gen 函数生成秒级触发时间戳序列
  4. 并行循环 foreach 步骤为序列中每个时间戳生成并行定时任务来调用目标函数 timer-hander

部署实现

你可以选择以下方式使用,推荐应用中心方式,只需简单的点击创建就能完成。

一、通过 FC 应用中心部署

实现已集成在FC 应用中心,可直接前往创建使用。

1. 创建应用

deploy

2. 验证是否生效

run

二、通过脚本部署

当然如果某些需求需要更改模版脚本,可选择通过脚本方式部署

1. 代码准备

下载 github 中 second-level-timer 示例代码。

2. 安装依赖

下载并安装 aliyun 命令行工具

3. 部署

示例使用 资源编排 ROS 服务,自动编排所有资源。在代码根目录执行:

Action=create StackName=fnf-timer-demo ResourceArn=XXX Input='{\"name\": \"hello world\"}' Duration=5 ./deploy.sh

其中:

  • ResourceArn:目标函数 resource arn,默认为 acs:fc:::services/FnFDemoTimer/functions/timer-handler
  • Input:目标函数调用时输入 event 的 payload
    目标函数 event 默认格式为:

    {
     "triggerName":"trigger",
     "triggerTime":"2019-12-12T09:56:05Z",
     "payload": {
        "name":"hello world",
      }
    }
  • Duration:设置目标函数被调用的秒级间隔,默认 1s

关于其它可自定义参数和如何更新部署,参考 deploy.sh 脚本或 README

执行完毕后会自动创建以下资源:

  • ROS 栈,默认名为 stack-fnf-timer-test,可通过 StackName=XXX 指定
  • Ram 角色 TimerFCRole-testTimerFnFRole-test
  • FC 服务 FnFDemoTimer 并绑定角色 TimerFCRole-test
  • FC 函数 timertimer-gentimer-handler
  • FC 定时触发器 trigger
  • FnF 工作流 FnFSecondLevelTimer-test

4. 验证是否生效

  • 前往 FnF 控制台查看工作流 FnFSecondLevelTimer-test 执行记录,该工作流会每分钟触发一次。
    image
  • 查看目标函数 timer-handler 调用记录,如果您在部署中指定了日志仓库配置 Project=XXX Logstore=XXX,可直接前往查看
    image

总结

函数工作流 FnF 极大简化了复杂业务流程的实现,将业务中每个子任务的执行变得可控透明化。同时工作流提供的逻辑步骤(顺序执行、并行、等待、跳转等)天然支持高并发和分布式任务的 Map/Reduce。

知识链接

函数工作流文档
函数计算文档
函数计算定时触发器

使用和交流

欢迎使用阿里云函数工作流和函数计算服务

  • 函数工作流官网客户群(钉钉):23116481
  • 函数计算官网客户群(钉钉):11721331
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
3月前
|
存储 运维 Java
函数计算产品使用问题之怎么配置定时触发器来调用Java函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
运维 Serverless KVM
函数计算产品使用问题之如何处理冷启动时间过长的问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
监控 Serverless 持续交付
函数计算产品使用问题之如何使用定时触发器预热函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
监控 Serverless 持续交付
函数计算产品使用问题之如何使用定时触发器预热函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
消息中间件 运维 Serverless
Serverless 应用引擎产品使用之在阿里云函数计算中,使用了RocketMQ的触发器,并且发送和接收消息都没有问题,但是消息轨迹中没有体现出来消费的情况如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
Java Serverless Maven
玩转阿里云函数计算(一)----Java Http 触发器极速迁移传统 Spring 应用
前言 阿里云函数计算 Function Compute(FC),旨在帮助用户采用弹性伸缩、动态分配资源的方式,来执行业务函数。让用户无需购买部署服务器,无需考虑业务负载,就能快速搭建可处理高并发的后台服务。
22688 1
|
Java Serverless Maven
玩转阿里云函数计算(二)----Java Http 触发器极速迁移传统 SpringBoot 应用
前言 阿里云函数计算 Function Compute(FC) 本文介绍如何使用 Java HTTP 触发器来快速迁移 SpringBoot 应用 demo-springboot-hello,并使用函数计算提供的 fun 工具 来快速部署和测试。
7062 0
|
JavaScript Serverless Docker
阿里云函数计算带Http触发器模板(使用Python3)
目前阿里云函数计算支持Http触发器,由于Http触发器使用得比较多,特意制作一个模板,可以直接下载该模板使用。另外,模板自带VScode调试功能,方便调试。
1600 0
|
21天前
|
存储 安全 关系型数据库
2024 Mysql基础与进阶操作系列之MySQL触发器详解(21)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
MySQL触发器的使用场景之数据完整性约束、如何具体创建person的日志表、触发器与存储过程的对比与选择、触发器的性能和注意事项等具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
3月前
|
存储 关系型数据库 MySQL
MySQL 中的触发器数量之谜
【8月更文挑战第31天】
39 0

热门文章

最新文章