Amazon web services Terraform:如何读取一个实例的卷ID?

Amazon web services Terraform:如何读取一个实例的卷ID?,amazon-web-services,amazon-ec2,terraform,Amazon Web Services,Amazon Ec2,Terraform,我使用默认的CentOS 7 AMI创建实例。此AMI自动创建一个卷并连接到实例。是否可以使用terraform读取该卷ID?我使用以下代码创建实例: resource "aws_instance" "DCOS-master3" { ami = "${var.aws_centos_ami}" availability_zone = "eu-west-1b" instance_type = "t2.medium" key_name = "${var.aws_key_

我使用默认的CentOS 7 AMI创建实例。此AMI自动创建一个卷并连接到实例。是否可以使用terraform读取该卷ID?我使用以下代码创建实例:

resource "aws_instance" "DCOS-master3" {
    ami = "${var.aws_centos_ami}"
    availability_zone = "eu-west-1b"
    instance_type = "t2.medium"
    key_name = "${var.aws_key_name}"
    security_groups = ["${aws_security_group.bastion.id}"]
    associate_public_ip_address = true
    private_ip = "10.0.0.13"
    source_dest_check = false
    subnet_id = "${aws_subnet.eu-west-1b-public.id}"

    tags {
            Name = "master3"
        }
}

您将无法从aws_实例中提取EBS详细信息,因为是aws端向资源提供EBS卷

但是您可以使用一些过滤器定义EBS
数据源

data "aws_ebs_volume" "ebs_volume" {
  most_recent = true

  filter {
    name   = "attachment.instance-id"
    values = ["${aws_instance.DCOS-master3.id}"]
  }
}

output "ebs_volume_id" {
  value = "${data.aws_ebs_volume.ebs_volume.id}"
}
您可以在此处参考EBS过滤器:

您可以:
aws\u实例.DCOS-master3.根\u块\u设备.0.卷\u id

如中所述:

对于任何
root\u block\u设备
ebs\u block\u设备
,导出
卷id
。e、 g.
aws\u实例.web.root\u块\u设备.0.volume\u id

output "volume-id-C" {
  description = "root volume-id"
  #get the root volume id form the instance
     value       =  element(tolist(data.aws_instance.DCOS-master3.root_block_device.*.volume_id),0)
}

output "volume-id-D" {
   description = "ebs-volume-id"
    #get the 1st esb volume id form the instance
        value       =  element(tolist(data.aws_instance.DCOS-master3.ebs_block_device.*.volume_id),0)
}