Если PopulateA всегда заполняет только значение a, а PopulateB только значение b, вы можете использовать состояние Pass с параметрами (вместо поля Result) после вашего параллельного состояния для объединения входов. Параметры позволяют преобразовать ваш ввод, указав пары ключ-значение с помощью JSONPath.
Вот пример конечного автомата:
{
"StartAt": "Parallel",
"States": {
"Parallel": {
"Type": "Parallel",
"ResultPath": "$.CombinedOutput",
"Next": "MergeOutputs",
"Branches": [{
"StartAt": "populateA",
"States": {
"populateA": {
"Type": "Pass",
"Result": {
"a": "A",
"b": null
},
"End": true
}
}
},
{
"StartAt": "populateB",
"States": {
"populateB": {
"Type": "Pass",
"Result": {
"a": null,
"b": "B"
},
"End": true
}
}
}
]
},
"MergeOutputs": {
"Type": "Pass",
"Parameters": {
"a.$": "$.CombinedOutput[0].a",
"b.$": "$.CombinedOutput[1].b"
},
"Next": "EndState"
},
"EndState": {
"Type": "Pass",
"End": true
}
}
}