使用 ASW 工作流创建您的第一个函数编排

2021-04-29 13:40:32 浏览数 (1)

应用与服务编排工作流(Application Services Workflow,ASW)是一个用来协调分布式任务执行的编排产品,根据腾讯云状态语言定义来编排分布式任务和服务,工作流会按照设定好的顺序可靠地协调执行,将云函数与多个腾讯云服务按步骤进行调度,通过低代码配置,就可以完成开发和运行业务流程所需要的任务协调、状态管理以及错误处理等繁琐工作,让研发团队能更简单、更高效的构建与更新应用。

01.

ASW 工作流与传统工作流的对比

特性

ASW 工作流

传统工作流

易用性

已完成云服务集成, 方便调用云上资源。

需要手工开发集成。

功能丰富度

使用 TCSL 语法,支持选择、并行、循环、错误处理等业务逻辑。

需要基于业务进行二次改造。

安全性

云原生应用,数据云端传输 & 备份,全程符合安全合规管控要求。

安全性低,需要用户考虑多个 VPC 之间的数据传输&存储安全。

维护成本

免维护。

需要专业团队维护,成本高。

弹性扩容能力

具备企业级弹性扩容能力,应对大流量挑战从容自如。

需要手工扩容,解决架构问题。

02.

ASW 工作流应用场景

  • 音视频处理

使用 ASW 工作流可以帮助您将多个任务编排成一个完整的处理流程,如转码、截图,内容识别,内容审核等。通过云函数,可以将转码任务进行切片并行处理,大大提高任务处理的吞吐量,满足高实时性、高并发能力的视频应用、社交应用场景。

  • ETL 作业处理

一些数据处理系统中,常常需要周期性/计划性地处理庞大的数据量,使用 ASW 工作流可以快速搭建一个高可用的数据处理流水线。例如,证券公司每 12 小时统计一次该时段的交易情况并整理出该时段交易量 top5,每天处理一遍秒杀网站的交易流日志获取因售罄而导致的错误从而分析商品热度和趋势等。ASW 工作流利用云函数对交易数据做并行处理,将结果写回数据库服务,并生成一系列不同纬度报表。利用函数近乎无限扩容的能力,可以轻松地进行大容量数据的计算,完成数据建模分析。

  • 基因数据处理

ASW 工作流可以将多个批量计算分布式作业串联或并行编排,可靠地支持执行时间长、并发量大的大规模计算。比如将基因数据进行二级分析,以识别生物样品与标准基因组参考相比的变异,最终产出相关性结果。ASW 工作流可以提升执行可靠性,提高资源利用率,优化成本。

  • 自动化运维

自动化运维常见有步骤繁琐时间长短不一、单机脚本可靠性低、依赖复杂、人工效率低等常见的挑战,另外进度无法可视化,ASW 结合云函数可以很好的解决这类问题。例如自动化的软件部署从构建 Docker 容器、上传容器镜像,开始并追踪各节点下拉镜像并启动新版本镜像的容器,每一步函数产生的日志会被保存到日志服务可供查询分享。基于 ASW 的自动化运维比单机运维脚本具有高可用、自带的错误处理机制和进度图形化的特点。

  • AI 机器训练

ASW 工作流可以将一系列的 AI 能力进行编排,完成一个复杂的 AI 作业场景训练。您可以使用 ASW 工作流来加速安全,有弹性的机器学习应用程序的交付,同时减少您必须编写和维护的代码量。

03.

如何使用 ASW 工作流?

下面以编排一个云函数为例,教你如何快速使用工作流。

1. 创建函数

登录云函数控制台,创建一个函数名称为 sum,运行环境为 Python 3.6 的云函数。

  • 控制台地址:https://console.cloud.tencent.com/scf
代码语言:javascript复制
# -*- coding: utf8 -*-import json def main_handler(event, context):    sum = 0    for i in event["values"]:        sum  = i    return sum

2. 创建工作流

1. 登录应用与编排服务流控制台,在工作流页面,点击「新建」,进入创建工作流页面,选择「代码创建」,在「代码」区进行编辑工作流定义代码,输入以下工作流定义:

  • ASW 工作流控制台地址:https://console.cloud.tencent.com/asw
代码语言:javascript复制
{ "Comment": "", "StartAt": "sum", "States": {   "sum": {     "Type": "Task",     "Comment": "调用求和函数",     "Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:scf:Invoke/sum/$DEFAULT/default",     "End": true   } }}

其中 Resource 定义了要调用的 sum 函数,格式如下:

代码语言:javascript复制
"qrn:qcs:asw:{函数所在地域}:{Appid}:sdk:json:qcloud:scf:Invoke/{函数名称}/{函数版本别名}/{函数命名空间}"

2. 单击「下一步」,在「配置基本信息」页面,输入工作流名称,选择运行角色与工作流类型,单击「完成」,完成工作流创建。

3. 运行工作流

1. 在工作流列表,点击创建的工作流「名称」,在界面中可看到工作流的基本信息,点击「开始执行」。

在弹出的「开始执行」窗口中,以 JSON 格式输入工作流需要的输入内容,例如:

代码语言:javascript复制
{"values": [1, 2, 3, 4, 5]}

2. 点击「确定」,完成状态执行后,可以在详情页查看执行结果。

3. 在当前页面最下方,在「执行历史记录」,点击「资源」中的云函数链接,可以直接跳到云函数控制台,查看函数执行详情。

欢迎大家使用体验 ASW 工作流产品服务,了解更多:https://cloud.tencent.com/product/asw。


识别下方 ? 二维码,即可加入腾讯云 ASW 交流群。


推荐阅读

One More Thing


立即体验腾讯云 Serverless Demo,获取 Serverless 新用户礼包,请在 PC 端访问:

serverless.cloud.tencent.com/start?c=wx20210428

欢迎进入千人 QQ 群 (871445853) 交流 Serverless!

  • GitHub: github.com/serverless
  • 官网: cloud.tencent.com/product/serverless-catalog

点击「阅读原文」,深入了解「腾讯云 ASW 工作流」产品服务。

0 人点赞