|
| 1 | +module "document_review_queue" { |
| 2 | + source = "./modules/sqs" |
| 3 | + name = "document-review" |
| 4 | + max_size_message = 256 * 1024 |
| 5 | + message_retention = 60 * 60 * 24 * 14 # 14 days |
| 6 | + dlq_message_retention = 60 * 60 * 24 * 14 # 14 days |
| 7 | + environment = var.environment |
| 8 | + owner = var.owner |
| 9 | + max_visibility = 1020 |
| 10 | + enable_dlq = true |
| 11 | + delay = 0 |
| 12 | + enable_sse = true |
| 13 | + |
| 14 | +} |
| 15 | + |
| 16 | +resource "aws_cloudwatch_metric_alarm" "review_dlq_new_messages" { |
| 17 | + alarm_name = "${terraform.workspace}_review_dlq_messages" |
| 18 | + comparison_operator = "GreaterThanThreshold" |
| 19 | + evaluation_periods = 1 |
| 20 | + metric_name = "ApproximateNumberOfMessagesVisible" |
| 21 | + namespace = "AWS/SQS" |
| 22 | + period = 60 |
| 23 | + statistic = "Sum" |
| 24 | + threshold = 0 |
| 25 | + alarm_description = "Alarm when there are new messages in the document review dlq" |
| 26 | + alarm_actions = [module.document_review_dlq_alarm_topic.arn] |
| 27 | + |
| 28 | + dimensions = { |
| 29 | + QueueName = module.document_review_queue.dlq_name |
| 30 | + } |
| 31 | +} |
| 32 | + |
| 33 | +module "document_review_dlq_alarm_topic" { |
| 34 | + source = "./modules/sns" |
| 35 | + sns_encryption_key_id = module.sns_encryption_key.id |
| 36 | + topic_name = "document_review_dlq_topic" |
| 37 | + topic_protocol = "email" |
| 38 | + is_topic_endpoint_list = true |
| 39 | + topic_endpoint_list = nonsensitive(split(",", data.aws_ssm_parameter.cloud_security_notification_email_list.value)) |
| 40 | + delivery_policy = jsonencode({ |
| 41 | + "Version" : "2012-10-17", |
| 42 | + "Statement" : [ |
| 43 | + { |
| 44 | + "Effect" : "Allow", |
| 45 | + "Principal" : { |
| 46 | + "Service" : "cloudwatch.amazonaws.com" |
| 47 | + }, |
| 48 | + "Action" : [ |
| 49 | + "SNS:Publish" |
| 50 | + ], |
| 51 | + "Condition" : { |
| 52 | + "ArnLike" : { |
| 53 | + "aws:SourceArn" : "arn:aws:cloudwatch:eu-west-2:${data.aws_caller_identity.current.account_id}:alarm:*" |
| 54 | + } |
| 55 | + }, |
| 56 | + "Resource" : "*" |
| 57 | + } |
| 58 | + ] |
| 59 | + }) |
| 60 | + |
| 61 | + depends_on = [module.document_review_queue] |
| 62 | +} |
0 commit comments