Вы можете использовать любое состояние, определенное на языке состояний Amazon, внутри состояния карты, и, если вам интересно, что вы не ограничены одним состоянием, вы можете определить полный рабочий процесс в поле Итератор вашего состояния карты. Думайте об этом как об определении нового конечного автомата в вашем состоянии карты, это похоже на параллельное состояние, за исключением того, что каждая ветвь одинакова, а количество ветвей основано на вашем массиве.
{
"Comment": "An example of the Amazon States Language using a map state to process elements of an array with a max concurrency of 2.",
"StartAt": "HardcodedInputsState",
"States": {
"HardcodedInputsState": {
"Type": "Pass",
"Result": {
"array": [
"Iterate",
"Over",
"This",
"Array"
]
},
"Next": "Map"
},
"Map": {
"Type": "Map",
"ItemsPath": "$.array",
"ResultPath": "$.array",
"MaxConcurrency": 2,
"Next": "Final State",
"Parameters": {
"Value.$": "$$.Map.Item.Value",
"Index.$": "$$.Map.Item.Index"
},
"Iterator": {
"StartAt": "You",
"States": {
"You": {
"Type": "Pass",
"Next": "Can"
},
"Can": {
"Type": "Pass",
"Next": "Do"
},
"Do": {
"Type": "Pass",
"Next": "Anything"
},
"Anything": {
"Type": "Pass",
"End": true
}
}
}
},
"Final State": {
"Type": "Pass",
"End": true
}
}
}