@@ -81,17 +81,45 @@ resource "aws_lambda_permission" "bulk_upload_metadata_processor_lambda" {
8181 source_arn = module. ndr-bulk-staging-store . bucket_arn
8282}
8383
84- resource "aws_s3_bucket_notification" "bulk_upload_metadata_processor_lambda_trigger" {
85- bucket = module. ndr-bulk-staging-store . bucket_id
84+ resource "aws_cloudwatch_event_rule" "bulk_upload_metadata_processor_lambda_expedite" {
85+ name = " staging-bulk-store-expedite-folder-object-created-rule"
86+ description = " Trigger bulk_upload_metadata_processor_lambda when a file is added to the expedite/ folder in the staging-bulk-store bucket"
87+ event_pattern = jsonencode ({
88+ " source" : [" aws.s3" ],
89+ " detail-type" : [" Object Created" ],
90+ " detail" : {
91+ " bucket" : {
92+ " name" : [module.ndr- bulk- staging- store.bucket_id]
93+ },
94+ " object" : {
95+ " key" : [{
96+ " prefix" : " expedite/"
97+ }]
98+ }
99+ }
100+ })
101+ depends_on = [
102+ module . ndr-bulk-staging-store
103+ ]
104+ }
86105
87- lambda_function {
88- lambda_function_arn = module. bulk-upload-metadata-processor-lambda . lambda_arn
89- events = [" s3:ObjectCreated:*" ]
90- filter_prefix = " expedite/"
91- filter_suffix = " .pdf"
92- }
106+ resource "aws_cloudwatch_event_target" "bulk_upload_metadata_processor_lambda" {
107+ rule = aws_cloudwatch_event_rule. bulk_upload_metadata_processor_lambda_expedite . name
108+ arn = module. bulk-upload-metadata-processor-lambda . lambda_arn
109+ depends_on = [
110+ module . bulk-upload-metadata-processor-lambda ,
111+ aws_cloudwatch_event_rule . bulk_upload_metadata_processor_lambda_expedite
112+ ]
113+ }
93114
115+ resource "aws_lambda_permission" "bulk_upload_metadata_processor_lambda_expedite" {
116+ statement_id = " AllowEventBridgeInvoke"
117+ action = " lambda:InvokeFunction"
118+ function_name = module. bulk-upload-metadata-processor-lambda . function_name
119+ principal = " events.amazonaws.com"
120+ source_arn = aws_cloudwatch_event_rule. bulk_upload_metadata_processor_lambda_expedite . arn
94121 depends_on = [
95- aws_lambda_permission . bulk_upload_metadata_processor_lambda
122+ module . bulk-upload-metadata-processor-lambda ,
123+ aws_cloudwatch_event_rule . bulk_upload_metadata_processor_lambda_expedite
96124 ]
97125}
0 commit comments