当前位置:黑鲸出海 > 热点资讯 > 干货分享 >  腾讯云:ASW工作流最佳实践(二):使用ASW并发调用函数

腾讯云:ASW工作流最佳实践(二):使用ASW并发调用函数

发表时间:2021-05-18  来源:TencentServerless  作者:susu  浏览:次  
在音视频转码、ETL作业处理、基因数据处理等诸多场景中,我们都可以通过工作流并行调用云函数,将任务进行并行处理,大大提高任务处理的吞吐量,满足应用场景的高实时性、高并发能力。

在音视频转码、ETL作业处理、基因数据处理等诸多场景中,我们都可以通过工作流并行调用云函数,将任务进行并行处理,大大提高任务处理的吞吐量,满足应用场景的高实时性、高并发能力。

本期文章主要分享如何使用ASW的Map节点能力进行并发的数据求和计算。

01.

创建函数

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

云函数控制台地址:https://console.cloud.tencent.com/scf

# -*- coding: utf8 -*-

import json 

def main_handler(event, context):

    sum = 0

    for i in event["values"]:

        sum += i

    return sum

640.webp (1).jpg

02.

创建工作流

1.登录「应用与编排服务流控制台」,在工作流页面,单击「新建」,进入创建工作流页面,单击「入门模板」,选择「Map循环」模板。

ASW中Map节点会遍历输入中的某个数组类型参数,对于数组中的每个元素并行执行其串行节点。Map节点类似于编程语言中的foreach,但节点循环任务是并发执行的。

ASW控制台地址:https://console.cloud.tencent.com/asw

640.webp.jpg

2.修改「代码」中Iterator下States节点中的state01为sum函数调用,如下工作流定义:

{

 "Comment": "使用Map节点循环处理数组array中的数据",

 "StartAt": "MapState",

 "States": {

  "MapState": {

   "Type": "Map",

   "ItemsPath": "$.array",

   "ResultPath": "$.result",

   "MaxConcurrency": 2,

   "Next": "FinalState",

   "Iterator": {

    "StartAt": "State01",

    "States": {

     "State01": {

      "Type": "Task",

      "Comment": "调用求和函数",

      "Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:scf:Invoke/sum/$DEFAULT/default",

      "End": true

     }

    }

   }

  },

  "FinalState": {

   "Type": "Pass",

   "End": true

}

ItemsPath指定作为了Map节点循环的数组。

MaxConcurrency指定了Map节点并发调用的函数数量。

Iterator为Map节点循环任务定义。

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

640.png

03.

运行工作流

1.在工作流列表,单击「名称」链接进入工作流,您在弹出的「开始执行」窗口中,以JSON格式输入array数组。例如:

640 (1).png

{

 "array": [{

   "values": [1, 2, 3, 4, 5]

  },

  {

   "values": [4, 2, 3, 1, 5]

  },

  {

   "values": [1, 0, 8, 4, 5]

  },

  {

   "values": [7, 2, 3, -2, 5]

  }

 ]

}

2.单击「确定」,完成状态执行后,可以在详情页查看执行结果。滑动至页面最下方,在「执行历史记录」下,您可以查看子节点的运行情况。我们可以看到Map节点会以并发数(MaxConcurrency)为2来调用sum函数,每个sum函数的入参为array数组的一个item。

640.webp (1).jpg

3.单击「资源」中的云函数链接,可以直接跳到云函数控制台,查看函数执行详情。

640.webp (2).jpg

注:文章源自于互联网,如有侵权,请联系客服删除。
19951839869
黑鲸出海客服