У меня есть приложение для воспроизведения scala, которое я пытаюсь запустить как функцию лямбда. Он получает уведомление из ведра s3 для нового объекта, а затем приобретает объект и работает над ним. Он отлично работает, когда я запускаю тестовый тест S3, а также на предмет получения данных о ведрах из события s3. Однако это не удается, когда я пытаюсь получить объект на основе информации в событии.Проверка подлинности S3 внутри функции лямбда/Не удалось инициализировать класс com.amazonaws.ClientConfiguration
private val awsCredentialsProvider = new DefaultAWSCredentialsProviderChain()
private val amazonS3Client = new AmazonS3Client(awsCredentialsProvider)
private val bucketName = play.Play.application.configuration.getString("aws.s3.BUCKET")
val s3object = amazonS3Client.getObject(new GetObjectRequest(bucket, objectKey))
и это
val amazonS3Client = new AmazonS3Client()
Но я получаю ошибку ниже.
java.lang.ExceptionInInitializerError
at com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.java:139)
at com.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:134)
at com.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:95)
at com.amazonaws.ClientConfiguration.<clinit>(ClientConfiguration.java:60)
at com.amazonaws.ClientConfigurationFactory.getDefaultConfig(ClientConfigurationFactory.java:46)
at com.amazonaws.ClientConfigurationFactory.getConfig(ClientConfigurationFactory.java:35)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:339)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:279) at controllers.Main.getSourceBuckets(Main.scala:24) 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) Caused by: java.lang.IllegalArgumentException at com.amazonaws.internal.config.InternalConfig.loadfrom(InternalConfig.java:235) at com.amazonaws.internal.config.InternalConfig.load(InternalConfig.java:249) at com.amazonaws.internal.config.InternalConfig$Factory.<clinit>(InternalConfig.java:304)
Could not initialize class com.amazonaws.ClientConfiguration:
java.lang.NoClassDefFoundError java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.ClientConfiguration
at com.amazonaws.ClientConfigurationFactory.getDefaultConfig(ClientConfigurationFactory.java:46)
at com.amazonaws.ClientConfigurationFactory.getConfig(ClientConfigurationFactory.java:35) at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:339) at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:279)
at models.TabSpaceFileParser$.downloadAllFileFromS32(TabSpaceFileParser.scala:62)
at controllers.ParserTask$$anonfun$exec$1.apply(ParserTask.scala:49)
at controllers.ParserTask$$anonfun$exec$1.apply(ParserTask.scala:34) at controllers.ParserTask.WithApplication(ParserTask.scala:60)
at controllers.ParserTask.exec(ParserTask.scala:34) 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)