如何找出这是否是AWS步骤函数映射任务中的最后一次迭代?
我有一个地图状态,可以迭代我的数组。在地图状态内,有一个lambda任务和等待任务。等待任务是等待的时间,我只需要在迭代之间等待。因此,我想跳过等待这是最后一次迭代,因为不需要它。
每次项目都不同并且数量不同时。
,地图上下文只有 $$。map.item.index 和 $$。 item.Value 变量。例如,我找不到任何变量,例如,总数的总数。
我该如何实现?
I have a Map state which iterates my array. Inside the map state, there is a Lambda task and a Wait task. The Wait task is waiting much time, and I need to wait only between iterations. So I would like to skip waiting if this is the last iteration because there is no need for it.
Every time the items are different and their amount is different.
However, the Map context has only $$.Map.Item.Index and $$.Map.Item.Value variables. I couldn't find any mention of any variable with the total amount of steps for example.
How can I achieve that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的理解:每次执行都有任意数量的Map项,这些Map项应该串行运行(即
MaxConcurrency:1
)。您希望在最后一项之后没有任何延迟。例如,包含 4 个项目[A, B, C, D]
的执行应按以下顺序运行:Lambda(A)、Wait、Lambda(B)、Wait、Lambda( C),等等,Lambda(D)
。单项执行[A]
应仅运行Lambda(A)
。这是一种方法:
[更新 - 2022 年末:使用新的
ArrayLength
和MathAdd
内在函数 我们可以计算最后一个项目索引没有 lambda - 请参阅下面的"LastItemIndex.$"
]在地图状态之前插入 Lambda 任务。 Lambda 对项目进行计数并将最后一个项目的索引输出到$.itemsCounter.lastItemIndex
。使用 地图状态上的参数:
ShouldWait?
选择状态任务和等待状态。继续等待,除非$.Index
等于$.LastItemIndex
。My understanding: Each execution has an arbitrary number of Map items that should run serially (i.e.
MaxConcurrency:1
). You want no delay after the last item. For instance, an execution with 4 items[A, B, C, D]
should run in the following order:Lambda(A), Wait, Lambda(B), Wait, Lambda(C), Wait, Lambda(D)
. A single-item execution[A]
should runLambda(A)
only.Here is one way to do it:
[Update - late 2022: Using the new
ArrayLength
andMathAdd
intrinsic functions we can calculate the last item index without a lambda - see"LastItemIndex.$"
below]Insert a Lambda Task before the Map State. The Lambda counts the items and outputs the last item's index to$.itemsCounter.lastItemIndex
.Add the last item and the item index to the Map iterations' payloads with Parameters on the Map State:
ShouldWait?
Choice State inside the Map between the Lambda Task and Wait State. Proceed to Wait unless$.Index
equals$.LastItemIndex
.