© Anton Dolganin 2025
Зачем: Обрабатывай массив задач параллельно в serverless-стиле. Подходит для пакетной обработки (batch из S3/SQS/DynamoDB), массовых API вызовов или генерации отчётов.
Best Practices:
Map
в режиме distributed
, а не inline
, если итераций больше 40.maxConcurrency
, чтобы не перегрузить зависимости.Use case: Ты получаешь 1000 заказов → Step Function обрабатывает каждый из них отдельно (в параллель), логируя успех/фейл.
Пример JSON-фрагмента Map state:
{
"Type": "Map",
"InputPath": "$.items",
"ItemsPath": "$",
"MaxConcurrency": 10,
"Iterator": {
"StartAt": "ProcessItem",
"States": {
"ProcessItem": {
"Type": "Task",
"Resource": "arn:aws:lambda:region:account:function:processItem",
"End": true
}
}
},
"End": true
}
Итог: подаешь items: [1,2,3,4,...]
— и Step Functions сам запускает processItem Lambda для каждого.
© Anton Dolganin 2025