我有由 Dynamo Stream 触发的 AWS Lambda 函数(DynamoDB 中出现的更改)。 它工作得很好。 不知何故,我开始在 Lambda 日志中收到错误,并且堆栈跟踪中没有指定 lambda 代码行:
java.lang.NullPointerException: java.lang.NullPointerException
java.lang.NullPointerException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)`
正如我所说,Lambda 由 Dynamo Stream 事件触发,并在其内部执行简单的 HTTP post 请求调用。 可能是什么?
最佳答案
由于没有可用的代码,因此只能猜测您可能在 DynamoDb 上设置了某种ttl(生存时间)。一旦 DynamoDb 中的项目超过其 ttl,它们就会从表中删除,并且删除事件会在 dynamo 流中发送,事件名称为“REMOVE”。 “REMOVE”事件的有效负载与“INSERT”或“UPDATE”事件的有效负载非常不同,可能来自流的此类有效负载给出了空指针异常。再次指定,这只是一个猜测,因为我没有关于您面临的代码类型和问题的任何信息。
关于java - 没有有用的堆栈跟踪的 Lambda NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56153920/