Ну вы можете ставить же блоки if в step function. Дальше только вопрос как передать переменные, которые вы будете проверять. Например первой в SF будет лямбда которая в зависимости от payload задаст необходимые переменные в data flow внутри SF.
Вот использования if и не вижу.
Да и то что беспокоит меня, так это какой инпут подать и как с ним дальше работать.
Меня приводит все к идеи большой 1 лямбды которая в себе разруливает разворот того или иного сервиса, а на выходе массив результатов с именами и т.д.
Но это скрывает часть логики SF и не делает лямбду атомарной.
Выглядит так что SF ещё ненастолько гибкая в части input/output.