代码之家  ›  专栏  ›  技术社区  ›  Christian Townsend

如何从Terraform中的ElastiCache获取cache_节点地址?

  •  1
  • Christian Townsend  · 技术社区  · 2 年前

    在Terraform中,我创建了一个ElastiCache集群:

    resource "aws_elasticache_cluster" "api" {
      cluster_id           = var.cluster_id
      engine               = var.engine
      node_type            = var.node_type
      num_cache_nodes      = 1
      parameter_group_name = "default.redis3.2"
      engine_version       = "3.2.4"
      port                 = 6379
      subnet_group_name    = var.subnet_group_name
    }
    

    我想知道如何访问 address 属性导出者 cache_nodes

    以下任一项是否足够?

    output "redis_host1" {
      value = aws_elasticache_cluster.api.cache_nodes["address"]
    }
    
    output "redis_host2" {
      value = aws_elasticache_cluster.api.cache_nodes.address
    }
    

    请澄清一下。

    1 回复  |  直到 2 年前
        1
  •  1
  •   Marcin    2 年前

    cache_nodes 是一个 列表 . 因此,您必须首先指定节点的索引,例如:

    output "redis_host1" {
      value = aws_elasticache_cluster.api.cache_nodes[0].address
    }
    
    output "redis_host2" {
      value = aws_elasticache_cluster.api.cache_nodes[1].address
    }
    

    或者只返回列表中的地址:

    output "redis_hosts" {
      value = aws_elasticache_cluster.api.cache_nodes[*].address
    }