问题描述
我一直在学习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"
}
}
我遇到的问题是尝试在for循环中添加另一个指标时出现错误。
{
"type": "metric","${id}"],["AWS/EC2","NetworkOut","title": "EC2 Instance Network"
}
}
我收到以下错误消息。
对函数“ templatefile”的调用失败:./network.tmpl:9,70-71: 无效的“ for”表达式; “ for”结束后的多余字符 表达..
一如既往,在此先感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)