private setupLambdaForS3Events()

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);
    }