terraform - aws_alb_listener 的 Terraform 如何在 type="forward" 的默认操作中添加多个 target_group_arn
问题描述
我的方法:我必须创建一个 "aws_lb_listener" 资源,在默认操作中我有 type = "forward" 但我没有一个 target_group_arn 。我有多个 target_group_arn 值。
下面的代码片段显示了前端侦听器,但 target_group_arn 应该包含多个 arn 值。
resource "aws_alb_listener" "frontend-listener" {
load_balancer_arn = aws_alb.ss_alb.arn
port = "443" #"80"
protocol = "HTTPS"
depends_on = [aws_alb_target_group.aws_alb_target_group]
default_action {
#target_group_arn = aws_alb_target_group.aws_alb_target_group.arn
type = "forward"
}
}
aws_alb_target_group 资源显示正在创建多个目标组。
resource "aws_alb_target_group" "aws_alb_target_group" {
for_each = local.ebapp_name
name = "${each.value.name}-tg"
port = 80
protocol = "HTTP"
vpc_id = var.vpc_id
}
我查看了 terraform 文档,但找不到解决方案。(https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener)
resource "aws_alb_listener_rule" "aws_alb_listener_rule"{
for_each = local.ebapp_name
listener_arn = aws_alb_listener.frontend-listener.arn
action {
type = "forward"
target_group_arn = aws_alb_target_group.aws_alb_target_group[each.value.name].arn
}
condition {
path_pattern {
values = ["/${each.value.name}/*"]
}
}
}
我还提到了 Listener 规则。
使用 terraform apply 命令显示错误,如下所示:
对于“forward”类型的操作,您必须指定“forward”块或“target_group_arn”
要解决此错误需要进行哪些更改?
解决方案
我认为您可以使用动态块来实现这一点。例如:
resource "aws_alb_listener" "frontend-listener" {
load_balancer_arn = aws_alb.ss_alb.arn
port = "443" #"80"
protocol = "HTTPS"
depends_on = [aws_alb_target_group.aws_alb_target_group]
default_action {
type = "forward"
forward {
dynamic "target_group" {
for_each = aws_alb_target_group.aws_alb_target_group
content {
arn = target_group.value["arn"]
}
}
}
}
}
以上仅为示例,可能仍需要进行一些调整才能使其按预期工作。
推荐阅读
- java - 使用 Spring-Retry 的 Kotlin 未调用 @Recover
- git - git 结帐 -b
但不在 git log 中显示历史记录 - angular - Angular 5 中的动态组件和事件发射器
- svg - SVG 文件具有相同的宽度且没有视图框,但两者看起来大小不同
- angular - nrwl 在库之间创建共享模块
- html - 使用 ion-slide 时页面不会滑到下一页
- c# - Wix ServiceInstall 指定帐户
- asp.net-core - 没有正则表达式的 ASP.NET Core 2.1 中的 URL 重写
- java - Java - 将实体转换为 wsimport 对象
- angular - 最佳从 EventEmitter 事件重新进入 ngZone