46 lines
1.3 KiB
HCL
46 lines
1.3 KiB
HCL
resource "aws_cloudwatch_event_rule" "EventRule" {
|
|
name = "${var.cw-alarm-prefix}-health-events"
|
|
description = "A CloudWatch Event Rule that triggers on changes in the status of AWS Personal Health Dashboard (AWS Health) and forwards the events to an SNS topic."
|
|
state = var.actions-enabled
|
|
event_pattern = <<PATTERN
|
|
{
|
|
"detail": {
|
|
"service": ["DIRECTCONNECT", "VPN", "LAMBDA", "EC2", "RDS"]
|
|
},
|
|
"detail-type": [
|
|
"AWS Health Event"
|
|
],
|
|
"source": [
|
|
"aws.health"
|
|
]
|
|
}
|
|
PATTERN
|
|
lifecycle {
|
|
ignore_changes = [tags["LastModified"]]
|
|
}
|
|
}
|
|
|
|
resource "aws_cloudwatch_event_target" "TargetForEventRule" {
|
|
rule = aws_cloudwatch_event_rule.EventRule.name
|
|
# target_id = "health-event-notification-sns"
|
|
arn = var.settings.healthEvents.action
|
|
input_transformer {
|
|
input_paths = {
|
|
"account" : "$.account",
|
|
"endTime" : "$.detail.endTime",
|
|
"message" : "$.detail.eventDescription[0].latestDescription",
|
|
"resources" : "$.resources",
|
|
"service" : "$.detail.service",
|
|
"startTime" : "$.detail.startTime"
|
|
}
|
|
input_template = <<EOF
|
|
"A maintenance has been scheduled for <service> on AWS account <account>."
|
|
|
|
"Resources: <resources>"
|
|
"Start time: <startTime>"
|
|
"End time: <endTime>"
|
|
|
|
"Detail: <message>"
|
|
EOF
|
|
}
|
|
} |