繁体   English   中英

在 terraform 如何设置数据资源的 if 条件

[英]in terraform how to set if condition for data resource

如何为数据 aws_acm_certificate 设置 if 语句。 为数据 aws_acm_certificate 添加计数时出现以下错误。 对于资源“aws_lb_listener”,我没有收到相同的错误。

由于 data.aws_acm_certificate.acm_certificate 设置了“计数”,因此必须在特定实例上访问其属性。

data "aws_acm_certificate" "acm_certificate" {
  count = var.protocol!="TCP" ? 1 : 0
  domain   = var.certificate_domain_name
  most_recent = true
}

resource "aws_lb_listener" "listener_https" {
  count = var.protocol!="TCP" ? 1 : 0
  load_balancer_arn = var.load_balancer_arn
  port              = "443"
  protocol          = "HTTPS"
  ssl_policy        = "ELBSecurityPolicy-2016-08"
  certificate_arn   = data.aws_acm_certificate.acm_certificate.arn

  default_action {
    type             = "forward"
    target_group_arn = var.target_group_arn
  }
}

因为您对数据有计数,所以您需要将其作为数组访问

certificate_arn   = data.aws_acm_certificate.acm_certificate[0].arn

或者,您可以将 for_each 用于您的资源

resource "aws_lb_listener" "listener_https" {
  for_each          = data.aws_acm_certificate.acm_certificate
  load_balancer_arn = var.load_balancer_arn
  port              = "443"
  protocol          = "HTTPS"
  ssl_policy        = "ELBSecurityPolicy-2016-08"
  certificate_arn   = each.value.arn

  default_action {
    type             = "forward"
    target_group_arn = var.target_group_arn
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM