Я создаю сигнал тревоги CloudWatch с помощью Terraform, например ::10000
resource "aws_cloudwatch_metric_alarm" "terraform_cloudwatch_metric_alarm_CPUUtilization" {
alarm_name = "terraform_cloudwatch_metric_alarm_CPUUtilization"
alarm_description = "terraform_cloudwatch_metric_alarm_CPUUtilization"
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = "1"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
period = "300"
statistic = "Average"
threshold = "90"
dimensions = {
"InstanceId" = "${aws_instance.terraform_instance.id}"
}
}
Но я получаю Произошла ошибка при подключении к серверу :
Когда я создаю то же самое из консоли, оно работает нормально:
Есть идеи, почему и как это исправить?
PS Временное решение заключается в добавлении local-exec
к aws_instance
:
provisioner "local-exec" {
command = <<-EOF
aws cloudwatch put-metric-alarm \
--alarm-name "cloudwatch_metric_alarm_CPUUtilization" \
--alarm-description "cloudwatch_metric_alarm_CPUUtilization" \
--no-actions-enabled \
--metric-name "CPUUtilization" \
--namespace "AWS/EC2" \
--statistic "Average" \
--dimensions "Name=InstanceId,Value=${aws_instance.terraform_instance.id}" \
--period "300" \
--unit "Percent" \
--evaluation-periods "1" \
--threshold "90" \
--comparison-operator "GreaterThanOrEqualToThreshold" \
--treat-missing-data "missing"
EOF
}