35 lines
1.1 KiB
Terraform
35 lines
1.1 KiB
Terraform
resource "aws_cloudwatch_metric_alarm" "billing_alarm" {
|
|
|
|
alarm_name = "billing_alarm"
|
|
comparison_operator = "GreaterThanThreshold"
|
|
metric_name = "EstimatedCharges"
|
|
namespace = "AWS/Billing"
|
|
evaluation_periods = "1"
|
|
period = "21600"
|
|
statistic = "Maximum"
|
|
threshold = local.billing_alarm_limit
|
|
alarm_description = "Billing alarm"
|
|
|
|
alarm_actions = [aws_sns_topic.billing_alarm_topic.arn]
|
|
|
|
tags = {
|
|
Name = "billing_alarm_topic_cf"
|
|
CreatedBy = "terraform"
|
|
Environment = "aws-alarms"
|
|
}
|
|
}
|
|
|
|
# The SNS topic with email subscriptions
|
|
# https://medium.com/@raghuram.arumalla153/aws-sns-topic-subscription-with-email-protocol-using-terraform-ed05f4f19b73
|
|
resource "aws_sns_topic" "billing_alarm_topic" {
|
|
name = "billing_alarm_topic"
|
|
provisioner "local-exec" {
|
|
command = "sh ${path.module}/scripts/sns_subscription.sh"
|
|
environment = {
|
|
AWS_DEFAULT_REGION = var.region
|
|
sns_arn = self.arn
|
|
sns_emails = local.billing_alarm_emails
|
|
}
|
|
}
|
|
}
|