AWS Step Functions概述

理论



什么是步进功能?



来自AWS Docs:Step Functions是一种无服务器编排服务,可让您结合使用AWS Lambda函数和其他AWS服务来创建关键业务应用程序。使用“步骤功能”图形控制台,您可以将应用程序工作流视为一系列事件驱动的步骤。步骤功能基于状态机和任务。状态机是工作流。任务是工作流中的一种状态,它是另一个AWS服务正在执行的工作单元。工作流程的每个步骤都是一个状态。



使用内置的“步骤功能”控件,您可以检查每个工作流程步骤的状态,以确保您的应用程序以正确的顺序并按预期运行。根据您的用例,Step Functions可以调用Lambda等AWS服务来执行任务。您可以创建用于处理和发布机器学习模型的工作流。您可以使用Step Functions来管理AWS服务(例如AWS Glue)来创建Extract,Transform和Load(ETL)工作流。您也可以为需要人工交互的应用程序创建冗长的自动化工作流。



或者简单地说就是用于管理流程的服务。





步进功能可能有哪些用例?



  1. 编排Lambda函数



    图片

  2. 分枝



    图片

  3. 异常处理(重试或捕获)



    图片

  4. 人类参与过程



    图片

  5. 平行性



    图片



步骤功能中的处理类型



  • 标准-长时间运行的流程所需,对服务和交互选项具有广泛的支持
  • Express-快速运行的流程(5分钟)所需,每百万执行的流程节省约20倍。与AWS服务的集成较少


与AWS服务集成的类型



请求响应(默认)-收到HTTP响应后,调用服务并允许“步骤功能”进入下一个状态。



运行作业(.sync)-调用服务并等待作业完成。



等待带有任务令牌(.waitForTaskToken)的回调-使用任务令牌调用服务,并等待任务令牌使用该回调返回。



比较标准类型和快速类型与AWS服务的集成



支持的标准服务集成

服务 要求回应 运行作业(.sync) 等待回调(.waitForTaskToken)
拉姆达
AWS批处理
DynamoDB
亚马逊ECS / AWS Fargate
亚马逊SNS
亚马逊SQS
AWS胶水
贤者
亚马逊电子病历
代码构建
AWS Step函数


Express支持的服务集成

服务 要求回应 运行作业(.sync) 等待回调(.waitForTaskToken)
拉姆达
AWS批处理
DynamoDB
亚马逊ECS / AWS Fargate
亚马逊SNS
亚马逊SQS
AWS胶水
贤者
亚马逊电子病历
代码构建
步骤功能


理论足够多,让我们举个例子。



理论实例



为了至少了解服务的外观,请考虑Hello world示例。



前提条件



  1. AWS账户
  2. 转到AWS账户中的Step Functions服务


因此,以下是我们的工作:



  1. 转到“创建步骤功能”
  2. 定义状态机=具有代码段的作者
  3. 类型=标准
  4. 定义=



    {
      "Comment": "A Hello World example of the Amazon States Language using Pass states",
      "StartAt": "Hello",
      "States": {
        "Hello": {
          "Type": "Pass",
          "Result": "Hello",
          "Next": "World"
        },
        "World": {
          "Type": "Pass",
          "Result": "World",
          "End": true
        }
      }
    }




单击开始执行。插入可以省略。您应该看到如下图:



图片

恭喜,您已经创建了最简单的Step Functions。



而不是结论



如果这个主题很有趣,那么在下一部分中,我们将创建具有AWS Lambda + SQS + SNS集成的Step Functions,如下图所示:



图片



链接到资源:



https://docs.aws.amazon.com/step-functions/



All Articles