terraform - 如何在 Terraform 的同一资源块中创建多个不同大小的卷?
问题描述
我当前的 Terraform 配置为构建多个大小相同的 AWS 卷。我们的一些服务器现在需要更大的容量。是否可以在同一个资源块中创建多个不同大小的卷?
或者,我必须拆分这个块(每个卷大小 1 个块),这将需要我重建很多 Terraform 配置,即在卷附件部分等。如果可能的话,我宁愿避免这种情况。
我需要计数中的第三卷和第四卷更大。最初我想使用一些条件逻辑,例如 If/Else 但是我不确定如何在 terraform 中实现它。我正在使用 terraform 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"
}
推荐阅读
- python - os.walk() 问题 - 如何包含 Windows 文件属性错误列为“0 字节”的子目录
- typescript - 如何修复 SyntaxError:无法在模块外使用 import 语句?
- sparql - 在流利过滤器中使用 STRSTARTS
- python - 关闭浏览器选项卡后如何删除烧瓶会话?
- python - 在 django html 表中显示数据
- javascript - 我的 EDIT 按钮无法正常工作?(Javascript 待办事项列表) 初学者
- java - onComplete 没有执行我的函数调用并运行我的函数 uploadImage() 调用之后的所有代码
- javascript - ReactJS:eventListener tranistionend 没有在 useEffect 中被清理
- java - 我如何在 Java 中获得插入符号位置
- android - 允许录制屏幕未在 android 的应用程序外部显示