Ich versuche ein Modul zu schreiben, um Sensu auf AWS zu implementieren, der Plan war, Elasticache für Redis zu verwenden, aber jetzt stehe ich vor einem Randfall. Bei einigen unserer VPCs ist die Mandantenfähigkeit auf "dediziert" eingestellt, und wir können dort keinen elastischen Text verwenden (http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/AmazonVPC.EC.html). Ich dachte, ich könnte dies umgehen, indem ich unter Verwendung von elasticache oder eines Redis-Clusters in einer ASG vorbereite. Ich habe den Code geschrieben und verwendet:Bedingte Ressourcen mit Terraform erstellen
count = "${replace(replace(var.vpc_instance_tenancy,"/.*dedicated.*/","0"),"/(.*default.*|^$)/","1")}"
zu entscheiden, ob ich den elasticahe Cluster oder die ASG schaffen soll, das Problem ist, dass ich einen Hostnamen oder die IP-Adresse auf den Sensu Server und api Knoten passieren muß so dass sie zu Redis Verbindung herstellen können, verwenden vorhatte:
redis_host = "${coalesce(aws_elasticache_cluster.redis_cluster.cache_nodes.0.address,aws_elb.redis_lb.dns_name)}"
aber nicht immer, weil eine der Ressourcen nie erstellt wird, und ich kann es nicht in der coalesce
Funktion verweisen. Irgendwelche Ideen?