Terraform模块输出用作其他模块的输入,特别是for_each



我需要一些关于以下用例的指导。我有一个堆栈有30个aws目标组要创建。因此,我使用了一个带有不同参数的for_each模块,并创建了30个Target组。现在,稍后我需要创建30个侦听器转发规则,其中我必须传递上述目标组的arn的输出。我得到了一个所需字符串的错误。我确信输出是一个字符串,当我多次调用模块而不使用for_each时,它就可以工作。

module "listener_rule_Models" {
source = "git::https://mycompany/_git/terraform-aws-alb-listener-rule"
for_each = {
"models" = {
tg_arn = module.tgLOGIN["MODELS"].tg_arn
forwarding_path = ["/my_service.application_path*"]
},
"indexEngine" = {
tg_arn = module.tgLOGIN["MODELS"].tg_arn
forwarding_path = ["/my_service2.application_path*"]
}
}
listener_arn = module.lis-Consolidated81.listener_arn
tg_arn       = each.value
forwarding_path = [each.value]
}

错误:模块参数的值无效

在主.tf线181上;listener_rule_Models":181:tg_arn=每个值

给定的值不适合于子模块变量"0";tg_arn";定义于.terraform\modules\listener_rule_Models\variables。tf:6,1-18:需要字符串。

错误:模块参数的值无效

在主.tf线181上;listener_rule_Models":181:tg_arn=每个值

给定的值不适合于子模块变量"0";tg_arn";定义于.terraform\modules\listener_rule_Models\variables。tf:6,1-18:需要字符串。

错误:模块参数的值无效

在主.tf线182上;listener_rule_Models":182:forwarding_path=[每个值]

给定的值不适合于子模块变量"0";forwarding_path";定义于.terraform\modules\listener_rule_Models\variables。tf:17,27-元素0:需要字符串。

错误:模块参数的值无效

在主.tf线182上;listener_rule_Models":182:forwarding_path=[每个值]

您没有引用映射中的各个键,而是同时引用了tg_arn&forwarding_path。

module "listener_rule_Models" {
source = "git::https://mycompany/_git/terraform-aws-alb-listener-rule"
for_each = {
"models" = {
tg_arn          = module.tgLOGIN["MODELS"].tg_arn
forwarding_path = ["/my_service.application_path*"]
},
"indexEngine" = {
tg_arn          = module.tgLOGIN["MODELS"].tg_arn
forwarding_path = ["/my_service2.application_path*"]
}
}
listener_arn    = module.lis-Consolidated81.listener_arn
tg_arn          = each.value.tg_arn
forwarding_path = [each.value.forwarding_path]
}

相关内容

  • 没有找到相关文章

最新更新