Запуск лямбда-функции AWS со строкой полезной нагрузки - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть функция на AWS Lambda, написанная на Java, которая в настоящее время может принимать только текст данных о событиях, но не JSON .

Всякий раз, когда я захожу в тестовую консоль, если мое тестовое событие имеет полезную нагрузку "{}", функция запускается, однако если это json, {} - нет.

Если я запускаю его с любым из триггеров, таких как S3, CloudWatch Events или со шлюзом API, они всегда отправляют json.

Есть ли какая-либо возможность запустить эти триггеры и заставить их посылать полезную нагрузку строки вместо полезной нагрузки json?

1 Ответ

0 голосов
/ 11 ноября 2018

Чтобы принять JSON в качестве входных данных, вам необходимо обновить RequestHandler<JSONObject, String> и

public class Hello implements RequestHandler<JSONObject, String>{
    public String myHandler(JSONObject jsonObj, Context context) {
       // add your processing logic.
       return "done!";
    }
}

В качестве альтернативы вы можете определить POJO с атрибутами вашей полезной нагрузки json, например

class Payload {
  //fields
  //setter & getter
}

И используйте этот тип полезной нагрузки в вашем RequestHandler как

public class Hello implements RequestHandler<Payload, String>{
    public String myHandler(Payload payload, Context context) {
       // add your processing logic.
       return "done!";
    }
}

Здесь String - ваш тип выходных данных.Если в вашем случае все по-другому, вам также нужно это изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...