How can I add new trigger for existing AWS Lambda function using Java SDK?
I would like to add S3 trigger.
I have program which converts an image from one format to another. I have two buckets in first, when I add source image in second I want to get result.
Any examples will be appreciated.
Thanks.
Trigger like this:
I try to do it, but it dosn't work:
final AWSLambda client = AWSLambdaClientBuilder.standard()
.withCredentials(credentials)
.build();
client.listFunctions().getFunctions()
.stream()
.filter(f -> f.getFunctionName().equals(FUNCTION_NAME))
.findFirst()
.ifPresent(lambda -> {
final AddPermissionRequest addPermissionRequest = new AddPermissionRequest();
addPermissionRequest.setStatementId("s3triggerId");
addPermissionRequest.withSourceArn("arn:aws:s3:::" + INPUT_BUCKET_NAME);
addPermissionRequest.setAction("lambda:InvokeFunction");
addPermissionRequest.setPrincipal("events.amazonaws.com");
addPermissionRequest.setFunctionName(lambda.getFunctionName());
AddPermissionResult addPermissionResult = client.addPermission(addPermissionRequest);
System.out.println("Trigger was added to lambda " + addPermissionResult.getStatement());
});
