- AWS: Java S3 Lambda Handler
- AWS: Java Kinesis Lambda Handler
- AWS: Java S3 Upload
- AWS: Java Post to Kinesis Queue
- AWS: Send Simple Email Service
If you want to write a Lambda for AWS in Java that connects to S3. You need to have the handler.
Maven:
<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>1.11.109</version> </dependency>
This is the method that AWS Lambda will call. It will look similar to the one below.
import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.events.S3Event; import com.amazonaws.services.s3.event.S3EventNotification.S3Entity; import com.amazonaws.services.s3.event.S3EventNotification.S3EventNotificationRecord; public void S3Handler(S3Event s3e, Context context) { final String awsRequestId = context.getAwsRequestId(); final int memoryLimitMb = context.getMemoryLimitInMB(); final int remainingTimeInMillis = context.getRemainingTimeInMillis(); for (final S3EventNotificationRecord s3Rec : s3e.getRecords()) { final S3Entity record = s3Rec.getS3(); final String bucketName = record.getBucket().getName() final String key = record.getObject().getKey(); } }
The thing to note when you setup you Lambda is how to setup the “Handler” field in the “Configuration” section on AWS. It is in the format “##PACKAGE##.##CLASS##::##METHOD##”.