AWS Lambda - CloudWatch Event type

Brooks picture Brooks · Jul 9, 2016 · Viewed 10.4k times · Source

When writing an AWS Java Lambda function that's triggered by Cloudwatch scheduled events, which event object gets passed to the Lambda handler function?

For example, for a Lambda function triggered by an S3 event, AWS invokes the function and passes an S3Event object. Similarly, it would pass an SNSEvent object to a function triggered by an SNS message.

public class LambdaHandler {

    public void eventHandler(S3Event event, Context context) {
    }

OR

public class LambdaHandler {

    public void eventHandler(SNSEvent event, Context context) {
    }

For a Cloudwatch Scheduled Event driven function, what would be in place of SNSEvent / S3Event?

public class LambdaHandler {

    public void eventHandler(__________ event, Context context) {
    }

I can't for the life of me find any examples of AWS Lambda functions written in Java that are triggered by Cloudwatch Scheduled events...

Bonus points for a sample function.

EDIT 1 There is no correct answer to this yet (though I don't know that AWS has released a proper 'event' object in the SDK that would be passed to the Lambda function), so there may not actually be an answer that I was looking for.

This question was also asked here: What is the parameter type passed to a Lambda function by a CloudWatch Events - Schedule trigger? and someone commented suggesting using Object and printing the class name. Turned out to be a LinkedHashMap. Looks to be as correct of an answer as I am going to get...

Answer

sandeepkunkunuru picture sandeepkunkunuru · Dec 11, 2017

com.amazonaws.services.lambda.runtime.events.ScheduledEvent is the current answer.

I can see that in 2.0.2 version of aws-lambda-java-events library this is available. Code is here and more details on 2.0 version are here