kämpfen, meinen Kopf um diese zu erhalten, unter meinem realen Welt Beispiel ist, aber ich denke, die allgemeine Frage ist:Terraforming Verweise auf neue Ressourcen über Variablen Werte
, wie eine Gruppe von Objekten nehmen in einer Vorlage und Referenz erstellt wird die ID eines bestimmten Objekts, das auf einem Namens-Tag basiert, zur Verwendung in einer anderen Ressource?
reale Welt Beispiel:
So bin ich dynamisch Bündel von Subnetzen basierend auf einer Liste von Subnetz Namen versehen als Listenvariable zu schaffen
variable "subnet_names" {
description = "subnet list"
default = ["subnet1","subnet2","dmz-a","dmz-b"]
}
resource "aws_subnet" "subnets" {
count = "${length(var.subnet_names)}"
vpc_id = "${aws_vpc.vpc.id}"
cidr_block = "${cidrsubnet(var.vpc_cidr, 6, count.index)}"
map_public_ip_on_launch = "false"
availability_zone ="${element(slice(data.aws_availability_zones.available.names, 0, 2), count.index)} "
tags = "${merge(var.common_tags, map("Name", "${var.domain_short_name}-${var.subnet_names[count.index]}"))}"
}
Dies funktioniert gut, aber ich möge dann sagen, befestigen NAT-Gateway zu nur bestimmten Subnetzen, für das Beispiel lässt sich das dmz sagen, aber ich kann nicht herausfinden, wie man eine subnet_id für ein bestimmtes Subnetz referenziert ... ich denke, es muss eine Möglichkeit geben, eine Karte der neuen Subnetze {subnet_ID zu erstellen : tags.name} und wählen Sie eine durch Nachschlagen der Tags.name, die corp-dmz-a als Beispiel wäre
Irgendwelche Vorschläge, wie man sich diesem nähert, würde geschätzt werden, ich habe mit einigen verschiedenen Methoden experimentiert, aber denke, dass ich ein grundlegendes Verständnis vermisse und vielleicht gibt es sogar einfacheren Weg mit der Interpolation und anderen Funktionen, die ich vermisse