在 Step Function 内循环

2023-12-21

我试图在循环中调用步骤函数中的几个步骤,但我无法弄清楚我需要如何执行此操作。这是我现在所拥有的:我需要添加另一个 lambda 函数(GetReviews),然后它将循环调用 CreateReview、SendNotification。我该怎么做呢? 我指的是“使用 Lambda 迭代循环 https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-create-iterate-pattern-section.html”文件,这表明这是可能的。

阶跃函数定义:

{
  "Comment": "Scheduling Engine",
  "StartAt": "CreateReview",
  "States": {
    "CreateReview": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-west-2:.........:function:CreateReview",
      "Next": "CreateNotification",
      "InputPath": "$",
      "ResultPath": "$.CreateReviewResult",
      "OutputPath": "$"      
    },
    "CreateNotification": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-west-2:.........:function:CreateNotification",
      "InputPath": "$",
      "ResultPath": "$.CreateNotificationResult",
      "OutputPath": "$",
      "End": true
    }
  }
}

我对这个答案做出了贡献,因为我使用了一种稍微不同的方法来能够在步骤函数内部循环,而不必依赖 lambda 来递增。如果将来有人需要通用解决方案,这可以是一个很好的参考。 这是带有代码的示例:

{
"Comment": "A description of my state machine",
"StartAt": "InitVariables",
"States": {
    "InitVariables": {
        "Type": "Pass",
        "Parameters": {
            "index": 0,
            "incrementor": 1,
            "ArrayLength.$": "States.ArrayLength($.inputArray)"
        },
        "ResultPath": "$.iterator",
        "Next": "LoopChoice"
    },
    "LoopChoice": {
        "Type": "Choice",
        "Choices": [
            {
                "Variable": "$.iterator.ArrayLength",
                "NumericGreaterThanPath": "$.iterator.index",
                "Next": "IncrementVariable"
            }
        ],
        "Default": "End"
    },
    "IncrementVariable": {
        "Type": "Pass",
        "Parameters": {
            "index.$": "States.MathAdd($.iterator.index, $.iterator.incrementor)",
            "incrementor": 1,
            "ArrayLength.$": "$.iterator.ArrayLength"
        },
        "ResultPath": "$.iterator",
        "Next": "LoopChoice"
    },
    "End": {
        "Type": "Pass",
        "End": true
    }
} }

这是循环的基础,我使用States.MathAdd($.iterator.index, $.iterator.incrementor)用于添加两个值的内部函数,在本例中,使用 initVariables 状态中定义的增量来增加索引。并获取我想要循环的数组的长度。您还可以使用内部函数来获取数组长度,States.ArrayLength("$.path.to.array")。该数组在输入中传递。 要获取数组的值,我们可以使用内部函数,States.ArrayGetItem($.inputArray, $.iterator.index)。 所有自定义逻辑都应该放在loopChoice状态和IncrementVariable状态之间。

希望这对将来的人有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Step Function 内循环 的相关文章

随机推荐

  • Python:当只有文件名(而不是路径)可用时如何在系统范围内搜索文件

    我对Python还是个新手 使用2 6 当只有文件名可用时 我试图在系统范围内搜索文件 并返回Windows上的绝对路径 我搜索并找到了一些像 scriptutil py 这样的模块 并浏览了 os 模块 但没有找到任何适合我需要的东西 或
  • 将 no-X11 tkinter 与 python 结合使用(通过 macports 安装)

    我已经安装了Python 2 7和一些有用的库 如Python Image Library 通过MacPorts 一切都好 现在 我想使用 Tkinter 问题是该版本使用X11 而且我不想使用X11 如果我切换到Apple安装的pytho
  • Python 文本阴影

    我使用 PIL 在图像上添加了一些文本 我想添加一个文本阴影 具有一定的阴影半径和阴影不透明度 在绘制一些文本之前 我已经能够通过绘制阴影来伪造这一点 它效果不太好 然后将其放置在文本上方一点点 draw text x y 2 text f
  • 从 Python 3.7 conda 环境中在 Spyder 下导入 numpy 时出现 ImportError

    我创建了一个 conda 环境 名为python3在我的 Ubuntu 虚拟机上使用 conda create n python3 python 3 7 我在这个环境下安装了几个包 包括numpy 打字时conda list numpy 显
  • Facebook FQL“like”表最多返回 100 行?

    好的 标题主要说明了一切 我想获得我给人们的喜欢的数量 为此我正在执行如下查询 SELECT object id FROM like WHERE user id me 但是 对于大型帐户 即使我添加 它也总是返回 100LIMIT 1000
  • Jest-Expo 在示例中崩溃(React.createElement:类型无效 - 需要一个字符串)

    我很困惑为什么示例测试没有运行 我在这里使用 Expo Web 和 typescript 我的前端使用运行良好expo start web App tsx const App gt return
  • 将knockout.js observablearray 对象传递给MVC 控制器操作?

    我正在使用 MVC 中的淘汰赛 我试图将可观察的对象数组从淘汰赛传递回我的 MVC 控制器操作以保存到数据库 如果我通过 ko toJSON viewModel ArrayName 将数组从淘汰赛传递到我的控制器操作 它将在我的控制器参数中
  • 将 NaN 值插入 MySQL 数据库

    我有一些数据包含 NULL 浮点数和偶尔的 Nan 我正在尝试使用 python 和 MySqldb 将此数据插入到 MySQL 数据库中 这是插入语句 for row in zip currents voltages row id lis
  • 更改单选按钮名称 javascript 在 IE 中不起作用

    我在 jsp 页面中有一些单选按钮 页面加载后 我运行一个 javascript 方法来查找某些单选按钮并更改其名称 以便它们像单选按钮组一样工作 我这样做是因为单选按钮位于 jsf 表内 并且在编码时我无法访问 name 属性 并且我希望
  • Resharper 7:MSTest 不起作用 - “测试未运行”

    自从我升级到 VS2012 和 Resharper 7 以来 我之前工作的 MS 测试不再运行 测试在 ASP NET 环境中运行 我使用以下属性 TestMethod HostType ASP NET AspNetDevelopmentS
  • 在 Excel 中创建序列列

    我有一列包含名称的列 我想添加一列来根据名称计算每行的序列 因此 如果一个名称出现多次 即 4 次 则该名称的第一行将具有序列 1 第二行将具有序列 2 依此类推 Name Sequence Andrew 1 Andrew 2 Andrew
  • Chef 中的引导问题

    我已经使用 Chef 设置了基本的基础设施 这包括本地厨师服务器 基于 ubuntu 工作站和基于 ubuntu 的服务器 用作节点 请注意 整个基础设施都位于我办公室网络的防火墙后面 我已经为服务器访问互联网做了必要的代理设置 所以这就是
  • QT KernelBase!RaiseException 位于 0x759fc41f

    评论多于问题 下面描述了我今晚遇到的一个问题以及我如何 纠正 它 这些事件需要几个小时的时间才能解决 由于该网站是我最喜欢的信息来源之一 因此认为这篇文章可能对其他人有益 欢迎任何有关诊断 QT Creator 运行时异常的建设性意见 该异
  • 当属性 Visibility 更改时为 StackPanel 制作动画

    在 WPF 3 5 带有 SP1 中 我只是当我更改属性可见性时 我想为 StackPanel 制作动画 我不知道这个 StackPanel 的高度 因为它的内容决定了它的高度 因此 当我将 StackPanel 的属性更改为 Visibl
  • 使用 jQuery .load 函数刷新元素而不重复它

    当用户点击提交按钮时 div forum应该刷新 不刷新页面 然而 由于某种原因 它反而创建了一个新的 div forum在原始 div 中 如下所示 虽然我知道我可以通过在 div 周围添加一个容器来防止这种情况 forum 我想知道是否
  • 使用 NAudio 将流数据保存到 WAV 文件

    我想将传入的流数据保存到硬盘驱动器上的 WAV 文件中 如何更改下面的代码才能将流录制到有效的 WAV 文件中 来自演示here http naudio codeplex com SourceControl changeset view a
  • 收到 icmp 请求,但没有回复 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • 如何处理ggplot2中的“data of class uneval”错误?

    在尝试将新行覆盖到现有行时ggplot 我收到以下错误 Error ggplot2 doesn t know how to deal with data of class uneval 我的代码的第一部分工作正常 下图是来自美国中西部电力市
  • AVPlayer 播放 iOS 7 后台通知中的音频

    I have audio fetch and remote notification set in UIBackgroundModes我通过以下方式成功接收了我的应用程序在后台 未激活 的远程通知 void application UIAp
  • 在 Step Function 内循环

    我试图在循环中调用步骤函数中的几个步骤 但我无法弄清楚我需要如何执行此操作 这是我现在所拥有的 我需要添加另一个 lambda 函数 GetReviews 然后它将循环调用 CreateReview SendNotification 我该怎