in cdk/lib/syndication-workflow.ts [72:90]
private setupLambdaForS3Events(stateMachine: sfn.StateMachine) {
const objectCreatedLambdaHandler = new lambda.Function(this, "FileUploadLambda", {
runtime: lambda.Runtime.NODEJS_12_X,
handler: "shared.ProcessUploadToSourceBucket",
code: lambda.Code.fromAsset(path.join(__dirname, "..", "..", "src", "handlers")),
environment: {
STATE_MACHINE_ARN: stateMachine.stateMachineArn
}
});
objectCreatedLambdaHandler.addToRolePolicy(new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
actions: ["states:StartExecution"],
resources: [stateMachine.stateMachineArn]
}));
this.sourceBucket.addObjectCreatedNotification(new s3notifications.LambdaDestination(objectCreatedLambdaHandler));
this.sourceBucket.grantRead(objectCreatedLambdaHandler);
}