首页 > 解决方案 > 使用 aws_elasticache_replication_group 获取 Terraform 的端点

问题描述

我有一个我认为是带有 Redis 的 AWS ElastiCache 的简单 Terraform 配置:

resource "aws_elasticache_replication_group" "my_replication_group" {
  replication_group_id          = "my-rep-group",
  replication_group_description = "eln00b"

  node_type                     = "cache.m4.large"
  port                          = 6379
  parameter_group_name          = "default.redis5.0.cluster.on"

  snapshot_retention_limit      = 1
  snapshot_window               = "00:00-05:00"

  subnet_group_name             = "${aws_elasticache_subnet_group.my_subnet_group.name}"

  automatic_failover_enabled    = true

  cluster_mode {
    num_node_groups             = 1
    replicas_per_node_group     = 1
  }
}

我尝试使用以下方法定义端点输出:

output "my_cache" {
  value = "${aws_elasticache_replication_group.my_replication_group.primary_endpoint_address}"
}

当我通过 terragrunt 运行应用程序时,我得到:

错误:运行计划出错:发生 1 个错误:

module.mod.output.my_cache:资源“aws_elasticache_replication_group.my_replication_group”没有变量“aws_elasticache_replication_group.my_replication_group.primary_endpoint_address”的属性“primary_endpoint_address”

我在这里做错了什么?

标签: amazon-web-servicesterraformamazon-elasticacheredis-cluster

解决方案


primary_endpoint_address属性仅适用于文档中提到的非集群模式 Redis 复制组:

primary_endpoint_address -(仅限 Redis)复制组中主节点的端点地址(如果禁用集群模式)。

使用集群模式时,您应该使用它configuration_endpoint_address来连接到 Redis 集群。


推荐阅读