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