【问题标题】:How to pass different output from Choice state in AWS Step Function?如何在 AWS Step Function 中从 Choice 状态传递不同的输出?
【发布时间】:2018-12-20 01:00:40
【问题描述】:

假设我的 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。但是这种方式对我来说是不可接受的,因为我也从其他一些州调用这些州。

我尝试修改ChoiceStateX 状态如下:

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

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

如何实现这个功能?

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

我已经检查过:

但还没有找到解决办法。

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-step-functions


    【解决方案1】:

    似乎无法为一种状态指定不同的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"
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      相关资源
      最近更新 更多