更新:从“地图状态”步骤模板创建一个步骤函数并运行,这也会引发错误。有力的证据证明MaxConcurrency属性和Parameters值不起作用。

我无法在步进函数定义中成功使用MaxConcurrency属性。

这可以通过使用documentation中提供的Map Task示例来证明(2019年9月18日新发布):

{
  "StartAt": "ExampleMapState",
  "States": {
    "ExampleMapState": {
      "Type": "Map",
      "MaxConcurrency": 2,
      "Parameters": {
        "ContextIndex.$": "$$.Map.Item.Index",
        "ContextValue.$": "$$.Map.Item.Value"
      },
      "Iterator": {
         "StartAt": "TestPass",
         "States": {
           "TestPass": {
             "Type": "Pass",
             "End": true
           }
         }
      },
      "End": true
    }
  }
}


通过使用以下输入执行步进功能:

[
  {
    "who": "bob"
  },
  {
    "who": "meg"
  },
  {
    "who": "joe"
  }
]



我们可以在执行事件历史中观察到:


ExecutionStarted
MapStateEntered
MapStateStarted
MapIterationStarted(索引0)
MapIterationStarted(索引1)
PassStateEntered(索引0)
PassStateExited(索引0)
MapIterationSucceeded(索引0)
ExecutionFailed


步进功能失败。
ExecutionFailed步骤具有以下输出(省略执行ID):

{
  "error": "States.Runtime",
  "cause": "Internal Error (omitted)"
}


尝试使用“捕获”步骤捕获错误没有任何效果。

我在这里做错了什么?这是一个错误吗?

最佳答案

对今天早上提交给AWS的私人机票的回应;


感谢您联系AWS Premium支持。我叫阿寒喀什,
在这种情况下,我将协助您。

我了解您一直在使用新的地图状态功能
的步函数,并注意到当我们在
MaxConcurrency设置为低于迭代次数的值
(只有第一次迭代成功)会失败,并显示“ States.Runtime”
并且看起来像是该功能的错误。

感谢您提供详细信息。它对我有帮助
故障排除。为了确认行为,我使用了以下内容
Pass的状态机示例:

{
“ StartAt”:“地图状态”,
“超时时间”:3600,
“状态”: {
“地图状态”:{
“类型”:“地图”,
“参数”:{
“ ContextValue。$”:“ $$。Map.Item.Value”
},
“ MaxConcurrency”:1
“迭代器”:{
“ StartAt”:“运行任务”,
“状态”: {
“运行任务”:{
“类型”:“通过”,
“结束”:true
}
}
},
“下一个”:“最终状态”
},
“最终状态”:{
“类型”:“通过”,
“结束”:true
}
}}

我测试了多个输入列表和MaxConcurrency值及以下
是我的观察:


输入大小列表:4 MaxConcurrency:1/2/3-失败,MaxConcurrency:0/4/5或更高版本-有效
输入大小列表:3 MaxConcurrency:1/2-失败,并且MaxConcurrency:0/3/4或以上-有效
同样,我也通过从状态机中删除参数来执行测试,并且可以看到它在不同的情况下都可以正常工作
MaxConcurrency值。
我还通过将任务类型的“通过”更改为“ Lambda”进行了测试,并观察到相同的行为。


因此,我可以确认当我们有
代码中的参数,并将MaxConcurrency值指定为任何值
大于零或大于或等于列表大小的数字。

在对此行为进行了一些研究之后,检查这是否是
意图,我找不到与此有关的太多信息
是一项新功能。因此,我将与
所有详细信息以及您提供的示例状态机。
感谢您将此通知我们。我会尽快回复您
我有内部团队的最新消息。请放心
我会定期跟进团队并与他们合作
进一步调查。

同时,如果您还有其他疑问或疑虑,请让我
知道。

祝您有美好的一天!


当我获得更多信息时,我将在这里更新。

08-07 23:39