Amazon web services 如何通过Terraform创建EKS节点的Cloudwatch报警

Amazon web services 如何通过Terraform创建EKS节点的Cloudwatch报警,amazon-web-services,kubernetes,terraform,amazon-eks,Amazon Web Services,Kubernetes,Terraform,Amazon Eks,我试图通过terraform创建EKS节点的警报,但我无法做到,因为我不知道如何引用节点实例。我有以下代码: resource "aws_cloudwatch_metric_alarm" "cpu_high_nodes" { for_each = local.ob alarm_name = "${var.cluster_name}-nodes-cpu-high-${each.value}" com

我试图通过terraform创建EKS节点的警报,但我无法做到,因为我不知道如何引用节点实例。我有以下代码:

resource "aws_cloudwatch_metric_alarm" "cpu_high_nodes" {
  for_each   = local.ob
  
  alarm_name          = "${var.cluster_name}-nodes-cpu-high-${each.value}"
  comparison_operator = "GreaterThanOrEqualToThreshold"
  evaluation_periods  = "2"
  metric_name         = "CPUUtilization"
  namespace           = "AWS/EC2"
  period              = "300"
  statistic           = "Maximum"
  threshold           = "85"
  alarm_description   = "Scale up if the cpu avg is above 85% for 10 minutes"

dimensions = {
    InstanceId =  "instance-id"
 }
如果我手动放置InstanceId,警报工作正常,但问题是从创建节点的任务中获取输出

resource "aws_launch_template" "worker-node" {
  for_each               = local.ob

  image_id               = "ami-038341f2c72928ada"
  name                   = "${var.cluster_name}-worker-node-${each.value}"
  instance_type          = "t3.medium"

  block_device_mappings {
    device_name = "/dev/xvda"

    ebs {
      volume_size = 20
      volume_type = "gp2"
    }
  }
  user_data                     = base64encode(data.template_file.user_data.template)
  tag_specifications {
    resource_type = "instance"
    tags = {
      "Instance Name" = "${var.cluster_name}-node-${each.value}"
       Name = "${var.cluster_name}-node-${each.value}"
    }
  }
}
如果我得到这个任务的.id,我将得到deLaunchTemplateID,实际上我需要EC2实例id,但我不知道如何得到它

有什么想法吗


THx

我猜实例是ASG的一部分?使用
AutoScalingGroupName
维度而不是
InstanceId
,不是更容易吗?@MarkoE-Hi,不是。。实例是启动模板的一部分,但不是ASG。。在aws规范中,不允许引用launchtemplate.:/