我将尝试用一个例子来解释我所面临的问题。
下面的terraform代码用于在循环中创建多个EBS卷。
main.tf
resource "aws_ebs_volume" "ebs_volume" {
count = var.count_drive
type = element(var.ebs_drive_type, count.index)
size = element(var.ebs_devices_size, count.index)
iops = element(var.ebs_iops, count.index)
}variables.tfvars
ebs_devices_names = ["/dev/xvdd", "/dev/xvdi", "/dev/xvdg"]
ebs_devices_size = ["250", "6000", "2000"]
ebs_drive_type = ["gp3", "io2", "gp3"]
ebs_iops = ["3000", "5000", "3000"]以上代码运行良好。现在的问题是,我还想指定吞吐量。我可以像其他变量一样添加一个列表类型的变量,但是只能为gp3指定吞吐量。因此,对于gp2、io1、io2等其他类型的EBS,我将得到一个错误。
因此,总结一下代码中需要做哪些更改,这样我们就可以跳过gp3类型以外的吞吐量分配了?
发布于 2022-08-18 14:25:04
以下是你可以做的事情:
resource "aws_ebs_volume" "ebs_volume" {
count = var.count_drive
type = element(var.ebs_drive_type, count.index)
size = element(var.ebs_devices_size, count.index)
iops = element(var.ebs_drive_type, count.index) == "gp2" ? null : element(var.ebs_iops, count.index)
throughput = element(var.ebs_drive_type, count.index) == "gp3" ? var.throughput : null
availability_zone = var.az
}您不必使用变量throughput,您最好将其设置为一个介于最低吞吐量和最高吞吐量之间的数字。另外,请注意,availability_zone是必需的参数。此外,iops参数对于卷的gp2类型不可用。
发布于 2022-08-18 14:23:19
如果要跳过它,请将其设置为null:
resource "aws_ebs_volume" "ebs_volume" {
count = var.count_drive
type = element(var.ebs_drive_type, count.index)
size = element(var.ebs_devices_size, count.index)
iops = element(var.ebs_iops, count.index)
throughput = var.ebs_drive_type[count.index] == "gp3" ? var.throughput : null
}https://stackoverflow.com/questions/73404515
复制相似问题