В настоящее время я настраиваю AWS CloudWatch Alarm, обнаруживая состояние работоспособности моего сервера с помощью Terraform. Состояние здоровья проверяется с помощью проверки работоспособности AWS Route 53 Health Check. Мой .tf
файл:Как связать аварийный сигнал AWW CloudWatch с AWS Route53 Проверка работоспособности с помощью Terraform?
resource "aws_cloudwatch_metric_alarm" "val1-alarm" {
alarm_name = "val-alarm"
comparison_operator = "LessThanOrEqualToThreshold"
evaluation_periods = "2"
metric_name = "HealthCheckStatus"
namespace = "AWS/Route53"
period = "60"
statistic = "Minimum"
threshold = "0"
dimensions {
HealthCheckId = "${aws_route53_health_check.val1-hc.id}"
}
alarm_description = "This metric monitor whether the server is down or not."
insufficient_data_actions = []
}
resource "aws_route53_health_check" "val1-hc" {
fqdn = "${aws_route53_record.val1-record.name}"
port = 27017
type = "TCP"
failure_threshold = "3"
request_interval = "30"
measure_latency = 1
cloudwatch_alarm_name = "${aws_cloudwatch_metric_alarm.val1-alarm.alarm_name}"
cloudwatch_alarm_region = "eu-central-1"
}
У меня есть эта ошибка при применении:
Cycle: aws_route53_health_check.val1-hc, aws_cloudwatch_metric_alarm.val1-alarm
цикла означает, что каждый ресурс называет другую. Когда я пытаюсь удалить cloudwatch_alarm_name
и cloudwatch_alarm_region
из проверки работоспособности, ошибка terraform подсказывает, что мне нужны эти два аргумента (хотя doc указывает, что эти два являются необязательными). Как это исправить?
Любая помощь или предложения приветствуются!
Это в настоящее время является открытым вопросом в проекте терраформировать-провайдеров -> https://github.com/terraform-providers/terraform-provider -aws/issues/712 – aimless