terraform - Terraform:循环动态添加acl规则
问题描述
如何使用循环动态添加 acl 规则?我想举个例子:变量“protocol”将从对象列表[protocol1,protocol2,protocol3]中获取所有协议值。
我的代码结构是:
-- Dev
-- main.tf
-- vars.tf
-- modules
-- acl
-- ressources.tf
这是我的vars.tf
variable "acl_rules" {
type = list (object({
protocol = string
rule_no = number
action = string
cidr_block = string
from_port = number
to_port = number
}))
default = [
{ protocol = "tcp", rule_no = 200, action = "allow", cidr_block = "10.3.0.0/18", from_port = 443, to_port = 443 },
{ protocol = "udp", rule_no = 100, action = "allow", cidr_block = "10.3.0.0/18", from_port = 54, to_port = 54 },
{ protocol = "http", rule_no = 300, action = "allow", cidr_block = "10.3.0.0/18", from_port = 80, to_port = 80 }
]
}
这是我的main.tf
# ACL for public subnet
module "acl" {
source = "../modules/acl"
vpc_id = module.vpc.vpcId
pub_snId_aza = element(module.pub-sn.snId[*], 0)
for_each = [for rule_obj in var.acl_rules :{
protocol = var.rule_obj.protocol
rule_no = var.rule_obj.rule_no
action = var.rule_obj.action
cidr_block = var.rule_obj.cidr_block
from_port = var.rule_obj.from_port
to_port = var.rule_obj.to_port
}
]
}
解决方案
推荐阅读
- python - 如何更新窗口上的所有画布项目(因此,画布)调整大小?
- beacon - 如何更改我自己的 esp32-beacon 上的 TX 电源?
- asp.net - 强制 UpdatePanel 从母版页重新加载
- go - 依赖注入:函数集合的模式和命名
- r - 如何使用 2 个带和不带黑色填充的形状为 2 x 2 实验处理设计制作 ggplot2 散点图图例
- c# - 无法构建 .Net core 2.2 项目?找不到类型或命名空间名称“系统”
- sockets - 为什么我们使用无限循环让套接字服务器保持监听?
- r - 无法在 RStudio 中使用 blogdown 服务站点()
- java - 如何将 char 从 0-1 转换为 double?
- mysql - How can I set mysql.rds_set_external_master to an RDS instance?