我当前的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"
}