循环地形

问题描述

我一直在学习terraform,并且一直在使用仪表板。

我有以下文件会生成一个仪表板。

resource "aws_cloudwatch_dashboard" "main" {
  dashboard_name = "sample_dashboard"
  dashboard_body = <<EOF
{
  "widgets": [
    ${templatefile("${path.module}/cpu.tmpl",{ ids = aws_instance.web[*].id })},${templatefile("${path.module}/network.tmpl",{ ids = aws_instance.web[*].id })}
  ]
}
EOF
}

这是cpu模板文件。

{
  "type": "metric","x": 0,"y": 0,"width": 12,"height": 6,"properties": {
    "metrics": ${jsonencode([for id in ids : ["AWS/EC2","CPUUtilization","InstanceId","${id}"]])},"period": 300,"stat": "Average","region": "us-east-1","title": "EC2 Instance CPU"
  }
}

这里有网络模板文件。

{
  "type": "metric","x": 12,"properties": {
    "metrics": ${jsonencode([for id in ids :
                  ["AWS/EC2","NetworkIn","${id}"]
                ])},"title": "EC2 Instance Network"
  }
}

一切正常,我得到以下信息中心。

dashboards

我遇到的问题是尝试在for循环中添加另一个指标时出现错误。

{
  "type": "metric","${id}"],["AWS/EC2","NetworkOut","title": "EC2 Instance Network"
  }
}

我收到以下错误消息。

对函数“ templatefile”的调用失败:./network.tmpl:9,70-71: 无效的“ for”表达式; “ for”结束后的多余字符 表达..

一如既往,在此先感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)