gpt4 book ai didi

amazon-web-services - 如何从 AWS Step Function 中的 Choice 状态传递不同的输出?

转载 作者:行者123 更新时间:2023-12-05 02:14:14 25 4
gpt4 key购买 nike

假设我的 Step Function 的一部分如下所示:

"ChoiceStateX": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.value",
"NumericEquals": 0,
"Next": "ValueIsZero"
}
],
"Default": "DefaultState"
},
"ValueIsZero": {
"Type" : "Task",
"Resource": "arn:aws:lambda:******:function:Zero",
"Next": "NextState"
},
"DefaultState": {
"Type" : "Task",
"Resource": "arn:aws:lambda:******:function:NotZero",
"Next": "NextState"
}

假设此状态的输入是:

{
"value": 0,
"output1": object1,
"output2": object2,
}

我的问题是我必须将 output1 传递给 ValueIsZero 状态,将 output2 传递给 DefaultState。我知道可以在 ValueIsZeroDefaultState 状态下更改 InputPath。但这种方式对我来说是 Not Acceptable ,因为我也从其他一些州调用这些州。

我尝试修改 ChoiceStateX 状态,如下所示:

"ChoiceStateX": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.value",
"NumericEquals": 0,
"OutputPath": "$.output1",
"Next": "ValueIsZero"
}
],
"Default": "DefaultState"
}

在这种情况下,我遇到了下一个错误:不支持字段输出路径

如何实现这个功能?

PS:目前,我在 ChoiceStateX 和 ValueIsZero/DefaultState 之间使用“代理”状态来修改输出。

我检查过:

但还没有找到解决方案。

最佳答案

看起来不可能为一个状态指定不同的 OutputPath

代理状态的解决方案看起来并不优雅。

我在ChoiceStateX之前的状态下用另一种方式解决了这个问题。我在 output 属性中设置不同类型的实例,并且只在 ChoiceStateX 状态下路由它。

我的 ChoiceStateX 状态输入如下:

{
"value": value,
"output": value==0 ? object1 : object2
}

结束 ChoiceStateX 状态的最终版本:

"ChoiceStateX": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.value",
"NumericEquals": 0,
"Next": "ValueIsZero"
}
],
"OutputPath": "$.output",
"Default": "DefaultState"
}

它仍然不完美,因为我在两个地方实现了相同的逻辑。

关于amazon-web-services - 如何从 AWS Step Function 中的 Choice 状态传递不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53783519/

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