private createLambdaFunctionBucket()

in infra/stack/serverless-stack.ts [70:93]


    private createLambdaFunctionBucket(table: ddb.Table, bucket: s3.Bucket): lambda.Function {
        const path = 'codes/lambda/bucket-function/src';

        const func = new lambda.Function(this, 'bucket-function', {
            functionName: `${this.stackName}-bucket-function`,
            runtime: lambda.Runtime.PYTHON_3_6,
            handler: 'handler.handle',
            code: lambda.Code.fromAsset(path),
            environment: {
                "TABLE_NAME": table.tableName
            },
            timeout: cdk.Duration.minutes(15)
        });

        func.addEventSource(new lambdaEvent.S3EventSource(bucket, {
            events: [s3.EventType.OBJECT_CREATED_PUT],
            filters: [{prefix: 'batch'}]
        }));

        table.grantWriteData(func);
        bucket.grantRead(func);

        return func;
    }