我正在尝试创建一个cloudwatch警报,如果一个bucket收到一系列上传,就会触发警报并发送sns电子邮件。我选择了Postrequests s3指标
这是我的地形资源:
resource "aws_cloudwatch_metric_alarm" "augmentation_brusque_evenement" {
alarm_name = "augmentation-brusque-events"
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = "1"
metric_name = "PostRequests"
namespace = "AWS/S3"
period = "120"
statistic = "Sum"
unit = "Count"
datapoints_to_alarm = "1"
threshold = var.s3_threshold
alarm_actions = var.sns_arn
ok_actions = var.sns_arn
dimensions = {
BucketName = aws_s3_bucket.bucket_test.id
}
}
这背后的思考过程是,如果在2分钟内发布请求的数量超过了设定的阈值,那么已经创建并测试过的sns主题将发送电子邮件。
terraform代码工作正常,创建了警报,但它总是处于数据不足的状态,我尝试通过控制台、使用terraform和cli将文件上传到s3 bucket,但这些方法似乎都没有改变警报状态。我尝试过同样的闹钟,但使用了Allrequests指标,但没有成功。
如果能深入了解我的代码或思维过程中可能存在的问题,我们将不胜感激,我愿意接受有关创建此警报的更好方法的建议。
提前感谢
resource "aws_s3_bucket_notification" "bucket_notification" {
bucket = aws_s3_bucket.bucket.id
topic {
topic_arn = aws_sns_topic.topic.arn
events = ["s3:ObjectCreated:*"]
filter_suffix = ".log"
}
}