amazon-web-services - 使用clojure调用aws lambda函数的空指针异常?
问题描述
我正在尝试使用 clojure 中的 Amazonica 客户端将 json 对象放入 s3 存储桶中。当我调用我的 lambda 函数时,我得到了 NullPointerException。这是我的代码:
(ns clojurehandler.s3_clojure_handler
(:gen-class
:name "clojurehandler.S3ClojureHandler"
:implements [com.amazonaws.services.lambda.runtime.RequestStreamHandler])
(:require
[clojure.java.io :as io]
[clojure.data.json :as json]
[amazonica.aws.s3 :as s3]))
(defn handle-event [event]
(s3/put-object
:bucket-name "bucket name"
:key "original"
:metadata {:server-side-encryption "AES256"}
:file event)
{:status 200})
(defn -handleRequest [this is os context]
(handle-event is))
这是堆栈跟踪:
{
"errorMessage": "java.lang.NullPointerException",
"errorType": "java.lang.NullPointerException",
"stackTrace": [
"com.amazonaws.internal.SdkFilterInputStream.markSupported(SdkFilterInputStream.java:108)",
"com.amazonaws.http.AmazonHttpClient.beforeRequest(AmazonHttpClient.java:471)",
"com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:356)",
"com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:329)",
"com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:308)",
"com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3659)",
"com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1422)",
"java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
"java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)",
"java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)",
"java.base/java.lang.reflect.Method.invoke(Unknown Source)",
"java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
"java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)",
"java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)",
"java.base/java.lang.reflect.Method.invoke(Unknown Source)",
"clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)",
"clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)",
"amazonica.core$fn_call$fn__457.invoke(core.clj:816)",
"amazonica.core$intern_function$fn__485.doInvoke(core.clj:887)",
"clojure.lang.RestFn.invoke(RestFn.java:619)",
"clojurehandler.s3_clojure_handler$handle_event.invokeStatic(s3_clojure_handler.clj:16)",
"clojurehandler.s3_clojure_handler$handle_event.invoke(s3_clojure_handler.clj:14)",
"clojurehandler.s3_clojure_handler$_handleRequest.invokeStatic(s3_clojure_handler.clj:32)",
"clojurehandler.s3_clojure_handler$_handleRequest.invoke(s3_clojure_handler.clj:31)",
"clojurehandler.S3ClojureHandler.handleRequest(Unknown Source)"
]
}
谢谢
解决方案
推荐阅读
- php - WooCommerce 向以编程方式创建的订单添加费用和优惠券
- python - 如何像浏览器一样执行发布请求以获得相同的结果
- django - DjangoCMS 复制网站 slug
- sql - MS SQL 触发器不为批量插入插入记录
- javascript - 在一个查询中更新多个表
- python - 类型提示:预期 `Union[ndarray, Iterable, int float]`,得到 `Type[ndarray]`
- python - 致命的 Python 错误:CodecRegistryError 由于 PYTHONPATH 值
- html - 阻止视频在苹果视频播放器中打开
- c# - 读取 /proc/stat 值以获取 cpu 使用率会引发 DivideByZeroException
- opengl - 来自物体的 Opengl 闪电