Можно ли сконструировать Lambda-обработчик так, чтобы он мог получать свои аргументы из SNS, или посредством прямого вызова?
Другими словами, та же самая Lambda может быть вызвана либоявным образом или через подписку на тему SNS.
Цель состоит в том, чтобы иметь лямбду, которая обычно запускается через SNS 90% времени, но также допускает ручной вызов через консоль или веб-API.
Похоже, это может быть возможно через что-то вроде
def lambda_handler(event, context):
args = parse_sns_event(event) if 'Records' in event else event
Предполагая, что «Записи» - это ключ верхнего уровня в событии Lambda SNS , и что «Записи» не являетсяимя одного из ожидаемых аргументов.
Есть ли лучший способ сделать это?(Если не считать двух лямбд - один основной рабочий плюс другой для получения сообщения SNS и вызова другого)