Skip to content

Commit d9122a9

Browse files
[PRMP-538] - Replace S3 listener with EventBridge rule
1 parent c93d1a5 commit d9122a9

File tree

1 file changed

+37
-9
lines changed

1 file changed

+37
-9
lines changed

infrastructure/lambda-bulk-upload-metadata-processor.tf

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)