【发布时间】:2020-12-29 21:20:05
【问题描述】:
我想通过 Terraform 创建带有一些指标的 AWS CloudWatch 控制面板。我的所有基础设施都在 Terraform 中进行了描述,并且我了解如何创建 AWS CloudWatch 仪表板(Terraform + json 模板)。卡在 AWS AutoScaling 组中。当我想在仪表板上显示一些指标时,我只使用像
这样的结构some_monitored_instance_id = "${aws_instance.some_instance.id}"
然后放到json模板中
"metrics": [
["AWS/EC2", "CPUUtilization", "InstanceId", "${some_monitored_instance_id}"]
],
通过以下方式启动实例时一切正常
resource "aws_instance" "some_instance" {}
但是当实例通过 AutoScaling Group 启动时,我不能使用这种方法。当实例通过 AutoScaling Group(和启动配置)启动时,如何提取实例 ID 以供将来在 Terraform 中使用?
【问题讨论】:
-
通常您不需要这样做。 ASG 中的实例可以随时更换。如果您现在创建这样的仪表板,一旦实例因 AZ 重新平衡、缩小/缩小活动等而被替换,仪表板将无用。
标签: amazon-web-services amazon-ec2 terraform infrastructure-as-code