如何在Terraform中为AWS EC2应用不同的tag



我已经在Terraform中应用了标记AWS ec2实例的代码,当代码运行时,它只创建了一个TAG。如何添加多个标签,例如

  1. 新增自动创建日期
  2. 它添加了自动操作系统检测(如windows或linux)

请参见屏幕截图

大师们,感谢你们的支持。

我为标签添加了以下代码。

# Block for create EC2 Instance
resource "aws_instance" "ec2" {
count                  = var.instance_count
ami                    = "ami-005835d578c62050d"
instance_type          = "t2.micro"
vpc_security_group_ids = [var.security_group_id]
subnet_id              = var.subnet_id
key_name               = var.key
**tags = {
Name = "${var.name}-${count.index + 1}"**
}
}

tags属性接受字符串映射,您还可以使用像merge这样的地形函数来合并默认标记(如果在您的用例中可用)和自定义资源特定标记。

# Block for create EC2 Instance
resource "aws_instance" "ec2" {
count                  = var.instance_count
ami                    = "ami-005835d578c62050d"
instance_type          = "t2.micro"
vpc_security_group_ids = [var.security_group_id]
subnet_id              = var.subnet_id
key_name               = var.key
tags = merge(var.default_ec2_tags,
{
Name = "${var.name}-${count.index + 1}"
}
)
}
variable "default_ec2_tags" {
type = map(string)
description = "(optional) default tags for ec2 instances"
default = {
managed_by = "terraform"
environment = "dev"
}
}

terraform-aws-provider的一些非常具体的东西和一个非常方便的功能是default_tags,您可以在提供者级别配置,这些标签将应用于由提供者管理的所有资源。

点击查看hashicorp的教程

不可能像@Marcin在评论中提到的那样,本地获取操作系统类型标签。

您可以通过简单地添加到您的Tags来添加其他标签,例如:

tags = {
Name = "${var.name}-${count.index + 1}"
CreationDate = timestamp()
OS           = "Linux"
}

相关内容

  • 没有找到相关文章

最新更新