3

我正在尝试使用以下方法获取弹性缓存节点地址,我在使用以下方法配置弹性缓存集群时使用计数:

${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"
}
4

0 回答 0