AWS阶跃函数映射状态:将当前迭代的输出作为下一个迭代的输入



我有一个以数组作为输入的map状态。我知道映射将遍历数组的元素。然而,我想做的是将一次迭代的输出传递给下一次迭代的输入。这可能不写入DB或S3吗?我已经尝试过无数次的InputPath、OutputPath和ResultPath的组合,但是无论我做什么来尝试从状态0修改状态1的输入,它都只是从数组中读取,而且似乎我无法从映射中修改输入数组。示例模板:

"Map":{
"Type": "Map",
"ItemsPath": "$.stages",
"Parameters": {
"stage.$": "$$.Map.Item",
},
"Iterator": {
"StartAt": "StartStage",
"States": {
"StartStage":{
"Type": "Task",
"Resource":"arn:aws:states:::lambda:invoke.waitForTaskToken",
"Parameters":{
"FunctionName":"...",
"Payload":{
"myArgs.$": "$.stage.Value",
}
},
"End": true
}
}
},
"MaxConcurrency": 1,
}

另一个选择是创建一个像这样的while循环:

  1. 设置一个变量来跟踪你的索引(pos = 0)
  2. 所有你想要迭代的状态
  3. 增加你的索引(pos++)
  4. 一个选择状态:如果你的索引小于你的项目计数,转到步骤1。

这样您就可以访问前一次迭代的结果。但是处理和合并迭代的结果并不是自动发生的,你需要添加一个状态来为你做这件事。

最新更新