Доступ к лямбда-контексту AWS из функции Spring Cloud - PullRequest
0 голосов
/ 09 ноября 2018

Я использую Spring Cloud Function 1.0.0.RELEASE и соответствующий адаптер AWS для запуска его в AWS lambda. Есть ли способ извлечь контекст лямбда-функции из контекста приложения Spring?

Я знаю, что если вы реализуете интерфейс RequestHandler самостоятельно, то вы получите объект Context в качестве второго параметра метода handleRequest (см. Ниже), но, поскольку SpringBootRequestHandler обрабатывает это, мне не ясно, как получить доступ к Context объект. Есть идеи?

Пример непосредственной реализации RequestHandler

public class LambdaRequestHandler implements RequestHandler<String, String> {

    public String handleRequest(String input, Context context) {
        context.getLogger().log("Input: " + input);
        return "Hello World - " + input;
    }
}

Откладывание реализации RequestHandler для SpringBootRequestHandler

public class SomeFunctionHandler 
      extends SpringBootRequestHandler<SomeRequest, SomeResponse> {
}

1 Ответ

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

SomeFunctionHandler расширяет SpringBootRequestHandler, поэтому он может переопределить метод handleRequest для получения доступа к объекту AWS lambda Context.

public class SomeFunctionHandler extends SpringBootRequestHandler<SomeRequest, SomeResponse> {

    private static final Logger logger = LoggerFactory.getLogger(SomeFunctionHandler.class);

    @Override
    public Object handleRequest(SomeRequest event, Context context) {
        logger.info("ARN=" + context.getInvokedFunctionArn());
        return super.handleRequest(event, context);
    }

}
...