我正在使用Spring Cloud Function 1.0.0.RELEASE和相应的AWS适配器在AWS lambda中运行它。有什么方法可以从Spring应用程序上下文中检索lambda函数上下文吗?
我知道如果您自己实现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> {
}
答案 0 :(得分:3)
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);
}
}