@@ -75,3 +75,47 @@ module "bulk-upload-metadata-processor-alarm-topic" {
7575
7676 depends_on = [module . bulk-upload-metadata-processor-lambda , module . sns_encryption_key ]
7777}
78+
79+ resource "aws_cloudwatch_event_rule" "bulk_upload_metadata_processor_lambda_expedite" {
80+ name = " ${ terraform . workspace } -staging-bulk-store-expedite-folder-object-created-rule"
81+ description = " Trigger bulk_upload_metadata_processor_lambda when a file is added to the expedite/ folder in the staging-bulk-store bucket"
82+ event_pattern = jsonencode ({
83+ " source" : [" aws.s3" ],
84+ " detail-type" : [" Object Created" ],
85+ " detail" : {
86+ " bucket" : {
87+ " name" : [module.ndr- bulk- staging- store.bucket_id]
88+ },
89+ " object" : {
90+ " key" : [{
91+ " prefix" : " expedite/"
92+ }]
93+ }
94+ }
95+ })
96+ depends_on = [
97+ module . ndr-bulk-staging-store
98+ ]
99+ }
100+
101+ resource "aws_cloudwatch_event_target" "bulk_upload_metadata_processor_lambda" {
102+ rule = aws_cloudwatch_event_rule. bulk_upload_metadata_processor_lambda_expedite . name
103+ arn = module. bulk-upload-metadata-processor-lambda . lambda_arn
104+ target_id = " bulk-upload-metadata-processor-lambda"
105+ depends_on = [
106+ module . bulk-upload-metadata-processor-lambda ,
107+ aws_cloudwatch_event_rule . bulk_upload_metadata_processor_lambda_expedite
108+ ]
109+ }
110+
111+ resource "aws_lambda_permission" "bulk_upload_metadata_processor_lambda_expedite" {
112+ statement_id = " AllowEventBridgeInvoke"
113+ action = " lambda:InvokeFunction"
114+ function_name = module. bulk-upload-metadata-processor-lambda . function_name
115+ principal = " events.amazonaws.com"
116+ source_arn = aws_cloudwatch_event_rule. bulk_upload_metadata_processor_lambda_expedite . arn
117+ depends_on = [
118+ module . bulk-upload-metadata-processor-lambda ,
119+ aws_cloudwatch_event_rule . bulk_upload_metadata_processor_lambda_expedite
120+ ]
121+ }
0 commit comments