簡體   English   中英

Terraform:從aws_instance資源獲取volume_id

[英]Terraform: Getting volume_id from aws_instance resource

terraform是否可能從aws_instance ebs_block_device資源中獲取卷ID,還是我們需要顯式調用aws_ebs_volume / aws_volume_attachment資源?

我目前擁有的是:

resource "aws_instance" "ec2_app" {
...
  ebs_block_device {
    device_name           = "${var.app_ebs_device_name}"
    volume_type           = "${var.app_ebs_vol_type}"
    volume_size           = "${var.app_ebs_vol_size}"
    delete_on_termination = "${var.app_ebs_delete_on_termination}"
    encrypted             = "${var.app_ebs_encrypted}"
  }
...
}

我知道我可以更改為aws_ebs_volume / aws_volume_attachment資源,但是我相信這會破壞並重新創建該卷(我試圖避免這種情況)。

關於這一點,文檔有些誤導,但是您可以像這樣獲得ebs_block_device的卷ID:

"${lookup(aws_instance.example.ebs_block_device[0], "volume_id")}"

假設您已經創建了一個卷,如下所示:

resource "aws_ebs_volume" "ebs-volume-1" {
    availability_zone = "eu-west-1a"
    size = 8
    type = "gp2"
    tags {
        Name = "extra volume data"
    }

您可以通過指定獲取卷ID

volume_id = "${aws_ebs_volume.ebs-volume-1.id}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM