我正在尝试使用以下方法获取弹性缓存节点地址,我在使用以下方法配置弹性缓存集群时使用计数:
${aws_elasticache_cluster.xxx-xxxx-xxxxxx.0.cache_nodes.0.address}
收到此错误:
* Resource 'aws_elasticache_cluster.xxx-xxxx-xxxxxx.1' does not have attribute 'cache_nodes.0.address' for variable 'aws_elasticache_cluster.xxx-xxxx-xxxxxx.1.cache_nodes.0.address'
当我尝试 fetchid
而不是 时cache_nodes.0.address
,它可以工作,但我需要 elasticache 节点地址。关于我如何得到它的任何想法。
更新
更多信息:
下面的代码片段为我创建了 3 个 ecc 节点
resource "aws_elasticache_cluster" "xxx-xxxxx-session" {
count = 3
cluster_id = "${var.pod_name}-xxx-xxxxx-${count.index}"
engine = "${var.ecc_engine}"
engine_version = "${var.ecc_engine_version}"
node_type = "cache.m3.xlarge"
num_cache_nodes = "${var.ecc_session_nodecount}"
parameter_group_name = "${var.ecc_parameter_group_name}"
subnet_group_name = "${var.xxxxxxx}"
port = "${var.ecc_port}"
security_group_ids = ["${aws_security_group.xxxxxx.id}"]
depends_on = ["aws_elasticache_subnet_group.xxxxxxxx"]
}
现在我想使用下面的方法为所有这些集群创建一个 route53 条目,例如,对于第一个集群,我使用下面的代码,但它确实有效。我在不使用 count 时工作,即只有一个集群和一个路由 43 端点:
resource "aws_route53_record" "redis-xxxxx-xxxxx-xxxxx-xxxxxx-A0" {
zone_id = "${lookup(var.route_53_zone_id, var.env_type)}"
name = "redissession0.${var.xxxxxxx}.${lookup(var.zone_record_domain, var.env_type)}"
type = "CNAME"
records = ["${aws_elasticache_cluster.xxx-xxxxx- session.0.cache_nodes.0.address}"]
ttl = "60"
}