amazon-ec2 - 使用 Terraform 通过 EC2 创建时如何向 AWS EBS 添加标签?

标签 amazon-ec2 terraform

我正在尝试为使用 PROD AMI 的 TEST 环境创建 EC2 实例。一切都在正确创建,但我无法弄清楚如何将标签添加到与它一起创建的 EBS 卷?

这些标签适用于 EC2,但不适用于 EBS 或根卷。我也尝试在这些上添加标签映射,但这是无效的。有任何想法吗?

provider "aws" {
  region = "us-east-1"
}

data "aws_ami" "existing_sft_ami" {
  most_recent = true

  filter {
    name   = "name"
    values = [var.prod_name]
  }
  owners = [
    var.aws_account_id]
}

data "aws_subnet" "subnet" {
  id = var.aws_subnet_id
}

resource "aws_instance" "sftp" {
  ami           = data.aws_ami.existing_sft_ami.id
  instance_type = "t2.micro"
  availability_zone = var.availability_zone
  subnet_id = data.aws_subnet.subnet.id
  key_name = var.ssh_key_name
  vpc_security_group_ids = [var.aws_security_group_id]
  root_block_device {
    delete_on_termination = true
  }
  ebs_block_device {
    device_name = "/dev/sdb"
    delete_on_termination = true
  }
  tags = {
    Name = var.name
    Owner = var.owner
    Created = formatdate("DD MMM YYYY hh:mm ZZZ", timestamp())
    Environment = "TEST"
  }
}

最佳答案

您需要使用额外的 volume_tags 标记卷的参数。另外,为了让你的代码更干一点,你可以用 locals 来做到这一点。堵塞。

locals {
    tags = {
        Name = var.name
        Owner = var.owner
        Created = formatdate("DD MMM YYYY hh:mm ZZZ", timestamp())
        Environment = var.environment
    }
}

resource "aws_instance" "sftp" {
  ami           = data.aws_ami.existing_sft_ami.id
  instance_type = "t2.micro"
  availability_zone = var.availability_zone
  subnet_id = data.aws_subnet.subnet.id
  key_name = var.ssh_key_name
  vpc_security_group_ids = [var.aws_security_group_id]
  root_block_device {
    delete_on_termination = true
  }
  ebs_block_device {
    device_name = "/dev/sdb"
    delete_on_termination = true
  }
  tags = local.tags
  volume_tags = local.tags
}

关于amazon-ec2 - 使用 Terraform 通过 EC2 创建时如何向 AWS EBS 添加标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62470272/

相关文章:

terraform - 将字符串追加到Terraform中的列表的每个元素

Terraform 0.11.1 不支持状态版本 4

powershell - 如何使用 user_data(AWS 和 Terraform)传递 PowerShell 脚本?

kubernetes - 如何增加 Terraformed EKS 节点的体积

linux - AWS 中的备份和停用实例存储

amazon-s3 - 在 Amazon EC2 和 S3 之间传输文件

python - 无法将 S3 与 Pyspark 连接。错误消息 : Bad Request, S3 扩展请求 ID:my_extend_request_id

Terraform aws_lb_ssl_negotiation_policy 使用 AWS 预定义的 SSL 安全策略

azure - 如果 var 为 null 或为空,如何跳过/忽略 terraform 中的特定模块

amazon-ec2 - 如何在 Spark Streaming EC2 集群应用程序中从 S3 读取输入