乐趣区

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

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

在《应用 ASW 工作流创立您的第一个函数编排》文章中,咱们分享了如何应用 ASW 编排一个 Sum 云函数进行求和计算。本期文章次要分享如何应用 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

02. 创立工作流

  1. 登录「利用与编排服务流控制台」,在工作流页面,单击「新建」,进入创立工作流页面,单击「入门模板」,抉择「Map 循环」模板。
  • ASW 中 Map 节点会遍历输出中的某个数组类型参数,对于数组中的每个元素并行执行其串行节点。Map 节点相似于编程语言中的 foreach,但节点循环工作是并发执行的。
  • ASW 控制台地址:https://console.cloud.tencent.com/asw

  1. 批改「代码」中 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 节点 循环工作定义。

  1. 单击「下一步」,在「配置根本信息」页面,输出工作流名称,抉择运行角色与工作流类型,单击「实现」,实现工作流创立。

03. 运行工作流

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

{
 "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]
  }
 ]
}
  1. 单击「确定」,实现状态执行后,能够在详情页查看执行后果。滑动至页面最下方,在「执行历史记录」下,您能够查看子节点的运行状况。咱们能够看到 Map 节点会以并发数(MaxConcurrency)为 2 来调用 sum 函数,每个 sum 函数的入参为 array 数组的一个 item。

  1. 单击「资源」中的云函数链接,能够间接跳到云函数控制台,查看函数执行详情。

<img src=”https://main.qcloudimg.com/raw/d6827d4193ca68aa86028d62dad2fe55.png” width=”700″/>

辨认下方 👇 二维码,即可退出腾讯云 ASW 交换群。


One More Thing

立刻体验腾讯云 Serverless Demo,支付 Serverless 新用户礼包 👉 腾讯云 Serverless 老手体验。

退出移动版