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