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, fo
Unfortunately there is no specific class for this type of events.
But you can freely create your own POJOs and specify them as class of event parameter. For instance, CloudWatchEvent can be described as:
public class CloudWatchEvent {
private String version;
private String id;
private String detailType;
private String source;
private String account;
private Date time;
private String region;
private List<String> resources;
...
// getters and setters
}
AWS Lambda engine automatically tries to serialize input into the object of the given class.
To know the structure you can specify type "Map" and printout it to log:
public void eventHandler(Map event, Context context) {
log.debug(event); // or System.out....
}
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
Following is the boilerplate code for it.
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.ScheduledEvent;
public class CollectionLambda {
public void eventHandler(ScheduledEvent event, Context context) {
// todo
}
}
Add following dependencies for maven:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>2.2.2</version>
</dependency>