Я пытаюсь написать Java AWS Lambda с использованием Serverless. В то время как мои Lambdas, запускаемые конечными точками HTTP, развертываются и работают правильно, моя попытка на запланированном сбое не удалась:
Конфиг выглядит так:
от serverless.yml
functions:
timedHandler:
handler: com.serverless.TimedHandler
events:
- schedule:
rate(1 minute)
Если я попытаюсь реализовать RequestHandler, как:
public class TimedHandler implements RequestHandler<Request, Response> {
private static final Logger LOG = LogManager.getLogger(Handler.class);
@Override
public Response handleRequest(Request request, Context context) {
LOG.info("Started up");
return null;
}
Журналы жалуются, что:
Произошла ошибка при разборе JSON: java.lang.RuntimeException java.lang.RuntimeException: Произошла ошибка при разборе JSON
Вызвано: java.io.UncheckedIOException: com.fasterxml.jackson.databind.JsonMappingException: не удается создать экземпляр com.amazonaws.Request
Я предполагаю, потому что запланированное событие не передается в объекте Request
, а является чем-то специфическим для запланированного триггера. Но если я не реализую интерфейс (что хорошо для документации по AWS, это нормально), журналы AWS будут жаловаться
Класс не реализует соответствующий интерфейс обработчика: com.serverless.TimedHandler
Есть ли конкретный интерфейс AWS, который мне нужно реализовать для запланированной лямбды, которая передает соответствующие аргументы?