gpt4 book ai didi

java - 使用 fargate 作为 worker 的 AWS Step Functions 工作流程 - 如何将输出发送到下一步?

转载 作者:行者123 更新时间:2023-11-29 09:31:25 25 4
gpt4 key购买 nike

我需要为 stepfunctions 制作一个 api,但问题是,我如何获得第一个的输出作为下一个的输入?

这是我目前所拥有的:

{
"Comment": "Match",
"StartAt": "Search",
"States": {
"Search": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "Search-cluster",
"TaskDefinition": "Search-task",
"Overrides": {
"ContainerOverrides": [
{
"Name": "search",
"Command.$": "$.commands"
}
]
}
},
"Next": "Save"
},
"Save": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "save-cluster",
"TaskDefinition": "save-task",
"Overrides": {
"ContainerOverrides": [
{
"Name": "save",
"Command.$": "$.commands"
}
]
}
},
"Next": "Send"
},
"Send": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "send-cluster",
"TaskDefinition": "send-task",
"Overrides": {
"ContainerOverrides": [
{
"Name": "send",
"Command.$": "$.commands"
}
]
}
},

"End": true
}
}
}

最佳答案

我遇到了同样的问题并联系了 AWS Support。被告知无法像使用 Lambda 那样直接返回 Fargate 任务的结果。一种选择是将您的任务结果存储在单独的数据库(如 DynamoDB)中,并编写一个 Lambda 来检索该值并使用上一个任务的输出更新您的输入 JSON。

旁注:在您的 ASL 中,您应该考虑使用 ResultPath。默认行为是用输出(结果)替换输入节点。意思是,如果在您的输入 JSON 中有您想要在后续状态中使用的值,并且如果您没有指定 ResultPath,它们将在第一个状态后丢失。引用:https://docs.aws.amazon.com/step-functions/latest/dg/input-output-resultpath.html#input-output-resultpath-amend

关于java - 使用 fargate 作为 worker 的 AWS Step Functions 工作流程 - 如何将输出发送到下一步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54981911/

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