Назначить существующую тему SNS для тревоги в Terraform - PullRequest
1 голос
/ 14 марта 2019

У меня есть существующая тема SNS, которая не управляется с помощью Terraform, на которую я хочу сослаться, чтобы я мог назначить ее в списке aws_cloudwatch_metric_alarm.alarm_actions.При попытке запустить план или применить я получаю следующее сообщение:

неизвестный ресурс 'aws_sns_topic.my-alerts', указанный в переменной aws_sns_topic.my-alerts.arn

Судя по сообщению, я предполагаю, что мне нужно как-то создать ресурс SNS, но я не уверен, как прикрепить / сослаться на него с существующей темой.

Я ссылаюсь на существующую тему вблок данных:

data "aws_sns_topic" "my-alerts" {
  name = "my-alerts"
}

Затем попытка использовать позже при тревоге, как:

resource "aws_cloudwatch_metric_alarm" "app-health-alarm" {
  alarm_name                = "app-health-alarm"
  comparison_operator       = "GreaterThanOrEqualToThreshold"
  evaluation_periods        = "2"
  metric_name               = "ApplicationComponetHealthRequestFailing"
  namespace                 = "ApplicationComponetHealth"
  period                    = "300"
  statistic                 = "Average"
  dimensions                = {
                                component="my-app"
                              }
  threshold                 = "1"
  alarm_description         = "Checks the health of the app"
  datapoints_to_alarm       = "2"
  alarm_actions             = ["${aws_sns_topic.my-alerts.arn}"]
}

1 Ответ

0 голосов
/ 15 марта 2019

При обращении к источнику данных необходимо указать префикс data.

Итак, в вашем случае это должно быть:

resource "aws_cloudwatch_metric_alarm" "app-health-alarm" {
  alarm_name                = "app-health-alarm"
  comparison_operator       = "GreaterThanOrEqualToThreshold"
  evaluation_periods        = "2"
  metric_name               = "ApplicationComponetHealthRequestFailing"
  namespace                 = "ApplicationComponetHealth"
  period                    = "300"
  statistic                 = "Average"
  dimensions                = {
                                component="my-app"
                              }
  threshold                 = "1"
  alarm_description         = "Checks the health of the app"
  datapoints_to_alarm       = "2"
  alarm_actions             = ["${data.aws_sns_topic.my-alerts.arn}"]
}
...