Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
aws的Terraform“alb”侦听器如何在type=”的默认操作中添加多个目标“组”;“前进”;_Terraform_Terraform Provider Aws_Infrastructure As Code - Fatal编程技术网

aws的Terraform“alb”侦听器如何在type=”的默认操作中添加多个目标“组”;“前进”;

aws的Terraform“alb”侦听器如何在type=”的默认操作中添加多个目标“组”;“前进”;,terraform,terraform-provider-aws,infrastructure-as-code,Terraform,Terraform Provider Aws,Infrastructure As Code,我的方法:我必须创建一个“aws\u lb\u侦听器”资源,在默认操作中,我有type=“forward”,但我没有一个目标组。我有不止一个目标群体价值观 resource "aws_alb_listener" "frontend-listener" { load_balancer_arn = aws_alb.ss_alb.arn port = "443" #"80" protocol =

我的方法:我必须创建一个“aws\u lb\u侦听器”资源,在默认操作中,我有type=“forward”,但我没有一个目标组。我有不止一个目标群体价值观

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"
    
    }
}  
下面的代码段显示了前端侦听器,但目标组应包含多个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文档,但没有找到解决方案。()

我还提到了侦听器规则

terraform apply命令显示错误,如下所示:

对于“转发”类型的操作,必须指定“转发”块或“目标组”


要解决此错误,需要做哪些更改?

我认为您可以使用。例如:

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"]
                }
            }
        }
    }
}

以上只是示例,可能仍需要进行一些调整才能使其按预期工作。

我尝试了forward{dynamic“target_group”{for_each=local.ebapp_name content{arn=aws_alb_target_group.aws_alb_target_group[each.value.name].arn}}}它似乎不起作用,你能建议任何可能起作用的方法吗??已在上面停留了很长时间。错误:在资源“aws_alb_侦听器”“前端侦听器”中modules\alb\main.tf第37行的此上下文中不能使用each.value。37:arn=aws_alb_target_组。aws_alb_target_组[each.value.name]。arn对“each.value”的引用已在其不可用的上下文中使用,例如,当配置不再包含其“for_each”表达式中的值时。删除对配置中each.value的引用以解决此错误。@aditmodi在我的回答中使用了
each.value
。这也错了?@aditmodi也许应该是
target\u group.value[“arn”]
。我修改了答案。您的答案不起作用,因为每个都应该有local.ebapp\u名称,而不是resource.aws\u alb\u target\u group.aws\u alb\u target\u group。