如何访问元组的值?

Mac*_*iej 5 amazon-web-services terraform terraform-provider-aws

我想知道如何从以下输出中访问该值:

output "backend_tg_arn" {
  value = var.backend_tg_needed ? aws_lb_target_group.backend_tg[*].arn : null
}
Run Code Online (Sandbox Code Playgroud)

它是用以下代码生成的:

resource "aws_lb_target_group" "backend_tg" {
  count       = var.backend_tg_needed ? 1 : 0
  name        = "${var.client_code}-${var.environment}-backend-tg"
  port        = var.backend_port
  protocol    = "HTTP"
  target_type = var.backend_target_type
  vpc_id      = aws_vpc.main_vpc.id
}
Run Code Online (Sandbox Code Playgroud)

上面的输出作为变量传递给另一个模块:

   backend_tg_arn = module.network.backend_tg_arn
Run Code Online (Sandbox Code Playgroud)

我试图将其分配给 alb 侦听器的默认操作:

  default_action {
    type             = "forward"
    target_group_arn = var.backend_tg_arn
  }
}
Run Code Online (Sandbox Code Playgroud)

出现错误:

var.backend_tg_arn 是有 1 个元素的元组

属性“target_group_arn”的值不合适:需要字符串。

我正在努力如何访问这个arn值...它应该通过某种循环来完成,但无法弄清楚。

yda*_*coR 7

您始终将计数设置为 1,这样您就可以只输出第一个元素(如果已创建):

output "backend_tg_arn" {
  value = var.backend_tg_needed ? aws_lb_target_group.backend_tg[0].arn : null
}
Run Code Online (Sandbox Code Playgroud)