Существует ли обобщенное c событие, которое может получить AWS лямбда-функция, а затем определить, какой это тип события? - PullRequest
1 голос
/ 27 февраля 2020

В настоящее время я узнаю о AWS лямбда и как вызвать его из других служб. Мне удалось использовать SNS topi c (с помощью этого урока ) для публикации sh a json вроде:

{
    "name":"Bojack",
    "lastName":"Horseman",
    "job":"Horsin around"
}

и запускает функцию Lambda:

public class LambdaHandler implements RequestHandler<SNSEvent, MyResponse> {

    public MyResponse handleRequest(SNSEvent request, Context context){

        String input = request.getRecords().get(0).getSNS().getMessage();
        MyRequest myRequest = new Gson().fromJson(input, MyRequest.class);

        context.getLogger().log(MyRequest.toString());

        // do some logic

        return null;
     }
} 

Отлично работает!

Однако сейчас я пытаюсь выяснить, как добавить новый сервис, который также может запускать эту функцию. Например SQS, или кинезис. AFAIK, эти службы отправляют разные json входные данные для лямбда-функции, и я не уверен, как получить их, так как в настоящее время я использую SNSEvent

Есть ли способ получить Событие Generi c и внутри обработчика определяют, какой сервис отправил его? Таким образом, я могу проанализировать его для указанного события c и получить сообщение

Я читал о AWS Отображении источника событий Lambda , но я Я не уверен, что это путь к go. Кроме того, я не совсем понял,

...