2017-11-08 2 views
0

Ich habe 2 Redshift Cluster Prod und Dev, ich benutze das gleiche Terraform-Modul. Wie kann ich 2 Knoten nur für Prod-Cluster haben. Bitte lassen Sie mich wissen, die, was die Interpolation Syntax iwie man einen Multi-Node Redshift-Cluster nur für prod mit Terraform erstellt

verwendet werden soll
variable "node_type" { 
    default = "dc1.large" 
} 

resource "aws_redshift_cluster" "****" { 
    cluster_identifier   = "abc-${var.env}" 
    node_type     = "${var.node_type}" 
    cluster_type     = "single-node" ==> multi node 
    number_of_nodes    = 2 ==> only for prod 

Antwort

1

Verwenden Sie die map type:

variable "node_type" { 
    default = "dc1.large" 
} 

variable "env" { 
    default = "development" 
} 

variable "redshift_cluster_type" { 
    type = "map" 

    default = { 
    development = "single-node" 
    production = "multi-node" 
    } 
} 

variable "redshift_node" { 
    type = "map" 

    default = { 
    development = "1" 
    production = "2" 
    } 
}  

resource "aws_redshift_cluster" "****" { 
    cluster_identifier   = "abc-${var.env}" 
    node_type     = "${var.node_type}" 
    cluster_type     = "${var.redshift_cluster_type[var.env]}" 
    number_of_nodes    = "${var.redshift_node[var.env]}" 
} 

Irgendwann bin ich faul und tun nur das

resource "aws_redshift_cluster" "****" { 
    cluster_identifier   = "abc-${var.env}" 
    node_type     = "${var.node_type}" 
    cluster_type     = "${var.env == "production" ? "multi_node" : "single_node" }" 
    number_of_nodes    = "${var.env == "production" ? 2 : 1 }" 
} 
+0

können wir verwenden leerer Wert? wie zum Beispiel - wir wollen Snapshot nur für prod und für Dev ein leerer Cluster snapshot_identifier = "$ {var.env ==" Produktion "?" xxxx ":" "}" @BMW – Swat

+1

ja, Sie können Variable auf leer setzen Wert. – BMW

Verwandte Themen