我有一个现有的SNS主题,但我不想参考Terraform进行管理,因此可以在aws_cloudwatch_metric_alarm.alarm_actions
列表中进行分配。尝试执行计划或应用时,我收到以下消息:
变量aws_sns_topic.my-alerts.arn中引用的未知资源“ aws_sns_topic.my-alerts”
根据消息的猜测,我想我必须以某种方式创建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}"]
}
答案 0 :(得分:0)
引用数据源时,您需要在其前面加上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}"]
}