簡體   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