Example usage for com.amazonaws.services.s3.model BucketNotificationConfiguration setConfigurations

List of usage examples for com.amazonaws.services.s3.model BucketNotificationConfiguration setConfigurations

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model BucketNotificationConfiguration setConfigurations.

Prototype

public void setConfigurations(Map<String, NotificationConfiguration> configurations) 

Source Link

Document

Sets the given notification configurations in this BucketNotificationConfiguration object.

Usage

From source file:com.tvarit.plugin.S3WarUploadEventToInvokeLambdaMaker.java

License:Open Source License

void make(AmazonS3Client amazonS3Client, String bucketName, Stack stack) {
    final List<Output> outputs = stack.getOutputs();
    final String lambdaFunctionArn = outputs.stream()
            .filter(output -> output.getOutputKey().equals("LambdaFunctionArn")).findFirst().get()
            .getOutputValue();/* w ww  .j a  v  a  2 s  .c o  m*/
    final BucketNotificationConfiguration notificationConfiguration = new BucketNotificationConfiguration();
    final HashMap<String, NotificationConfiguration> configurations = new HashMap<>();
    final LambdaConfiguration lambdaConfiguration = new LambdaConfiguration(lambdaFunctionArn);
    final HashSet<String> events = new HashSet<>();
    events.add("s3:ObjectCreated:*");
    lambdaConfiguration.setEvents(events);
    final com.amazonaws.services.s3.model.Filter notificationFilter = new com.amazonaws.services.s3.model.Filter();
    final S3KeyFilter s3KeyFilter = new S3KeyFilter();
    notificationFilter.withS3KeyFilter(s3KeyFilter);
    s3KeyFilter.withFilterRules(new FilterRule().withName("suffix").withValue(".war"),
            new FilterRule().withName("prefix").withValue("deployables"));
    lambdaConfiguration.setFilter(notificationFilter);
    configurations.put("warUploaded", lambdaConfiguration);
    notificationConfiguration.setConfigurations(configurations);
    final SetBucketNotificationConfigurationRequest setBucketNotificationConfigurationRequest = new SetBucketNotificationConfigurationRequest(
            bucketName, notificationConfiguration);
    amazonS3Client.setBucketNotificationConfiguration(setBucketNotificationConfigurationRequest);

}