Terraform aws_cloudwatch_metric_alarm 联系服务器时发生错误

Terraform aws_cloudwatch_metric_alarm An error occurred contacting the server

我正在使用 Terraform 创建 CloudWatch 警报,例如:

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 = {
    "Instance­Id" = "${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 }

问题出在维度名称中的 SOFT HYPHEN 中,VSCode 和 Sublime 3 都正常显示代码:

只有 Vim/nano 正确显示: