我已经在Terraform中应用了标记AWS ec2实例的代码,当代码运行时,它只创建了一个TAG。如何添加多个标签,例如
- 新增自动创建日期
- 它添加了自动操作系统检测(如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"
}