[英]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.