Исключение нулевого указателя, вызывающее лямбда-функцию aws с использованием clojure? - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь поместить объект 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)"
  ]
}

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...