[英]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.