gpt4 book ai didi

amazon-web-services - AWS 步进函数 mapState 迭代大型有效负载

转载 作者:行者123 更新时间:2023-12-03 16:36:57 24 4
gpt4 key购买 nike

我有一个由第一个预处理任务组成的状态机,它生成一个数组作为输出,随后的映射状态使用它来循环。第一个任务的输出数组太大,状态机抛出错误 States.DataLimitExceeded :The state/task 'arn:aws:lambda:XYZ' returned a result with a size exceeding the maximum number of characters service limit.
这是状态机 yaml 的示例:

stateMachines:
myStateMachine:
name: "myStateMachine"
definition:
StartAt: preProcess
States:
preProcess:
Type: Task
Resource:
Fn::GetAtt: [preProcessLambda, Arn]
Next: mapState
ResultPath: "$.preProcessOutput"
mapState:
Type: Map
ItemsPath: "$.preProcessOutput.data"
MaxConcurrency: 100
Iterator:
StartAt: doMap
States:
doMap:
Type: Task
Resource:
Fn::GetAtt: [doMapLambda, Arn]
End: true
Next: ### next steps, not relevant

我想出的一个可能的解决方案是该状态 preProcess将其输出保存在 S3 存储桶和状态 mapState直接从中读取。这可能吗?目前 preProcess 的输出是
ResultPath: "$.preProcessOutput"
mapState接受数组
ItemsPath: "$.preProcessOutput.data"作为输入。

我需要如何调整 map 状态直接从 S3 读取的 yaml?

最佳答案

我目前也在解决工作中的类似问题。因为 step 函数存储其整个状态,所以随着 json 的增长,当它映射到所有值时,您很快就会遇到问题。

解决这个问题的唯一真正方法是使用阶梯函数的层次结构。也就是说,阶梯函数上的阶梯函数。所以你有了:
parent -> [batch1, batch2, batch...N]
然后每个批次都有许多单个作业:
batch1 -> [j1,j2,j3...jBATCHSIZE]
我有一个非常简单的步骤函数,我在 ~4k 找到了大约是在我开始达到状态限制之前我可以拥有的最大批量大小。

嘿它的工作原理不是一个很好的解决方案。

关于amazon-web-services - AWS 步进函数 mapState 迭代大型有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60318159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com