如何在Terraform中的同一资源块中创建多个不同大小的卷



我当前的Terraform被配置为构建几个大小相同的AWS卷。我们的一些服务器现在需要更大的容量。是否可以在同一资源块中创建多个不同大小的卷?

或者,我必须将这个块拆分(每个卷大小1个块(,这将需要我重建很多Terraform配置,即在卷附件部分等。如果可能的话,我宁愿避免这种情况。

我需要计数中的第三卷和第四卷的大小更大。起初,我想使用一些条件逻辑,如If/Else,但我不确定如何在地形中实现这一点。我用的是地形0.12.18。

伪代码:

resource "aws_ebs_volume" "myvolume" {
provider          = aws.client
count             = 5
availability_zone = var.availability_zone
encrypted         = "true"
size              = if index aws_ebs_volume.myvolume = 2 or 3 then 300GB else 100GB
type              = "gp2"
}

您可以执行以下操作。

resource "aws_ebs_volume" "count" {
count             = 5
availability_zone = var.availability_zone
size              = contains([2, 3], count.index) ? 300 : 100
type              = "gp2"
}

您也可以使用for_each

resource "aws_ebs_volume" "for_each" {
for_each = {
0 = 100
1 = 100
2 = 300
3 = 300
4 = 100
}
availability_zone = var.availability_zone
size              = each.value
type              = "gp2"
}

相关内容

  • 没有找到相关文章

最新更新