![](/img/trans.png)
[英]How to sort data from dynamo DB using nodeJS in AWS-lambda
[英]How to get Context for logging when using APIGatewayProxyRequestEvent in aws-lambda
我的项目是用 spring-cloud-function 编写的,部署在 aws-lambda。我有一个要求,我应该在其中记录事件。
一点搜索告诉我使用
com.amazonaws.services.lambda.runtime.Context
通过这样做进行日志记录:
context.getLogger().log("log event here");
我有一个 spring 云 function,它接收 APIGatewayProxyRequestEvent 作为输入,APIGatewayProxyResponseEvent 作为 output 参数
我再次搜索,发现获取上下文,这个可以用org.springframework.messaging.Message
包裹
所以我这样写了 function:
public Function<Message<APIGatewayProxyRequestEvent>, APIGatewayProxyResponseEvent> saveEmployee(){
return request -> {
Context context = request.getHeaders().get("aws-context", Context.class);
context.getLogger().log("employee save request---: " + request);
//do something
但是上下文评估为 null 并且我得到 NullPointerException
有人可以指出可能出了什么问题吗? 或者如何获取上下文?
提前致谢
确保使用以下处理程序:org.springframework.cloud.function.adapter.aws.FunctionInvoker::handleRequest
您可以实现 RequestHandler class 并覆盖 handleRequest 方法。 context 参数可用于输入 cloudwatch 的日志。
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.LambdaLogger;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class Function implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
@Override
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) {
LambdaLogger logger = context.getLogger();
logger.log(event);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.