Я пытаюсь поместить объект json в корзину s3, используя клиент Amazonica в clojure. Я получаю исключение 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)"
]
}
Спасибо