0
我有一個scala play應用程序,我試圖運行lambda函數。它從s3桶接收一個新對象的通知,然後獲取該對象並對其進行處理。當我運行S3 put測試以及從s3事件獲取桶詳細信息時,它工作正常。但是,當我嘗試根據事件中的信息獲取對象時,它會失敗。lambda函數內的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)