使用 aws_elasticache_replication_group 获取 Terraform 的端点

Get endpoint for Terraform with aws_elasticache_replication_group

我有一个我认为是 AWS ElastiCache 和 Redis 的简单 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}"
}

当我 运行 通过 terrag运行 申请时,我得到:

Error: Error running plan: 1 error(s) occurred:

module.mod.output.my_cache: Resource 'aws_elasticache_replication_group.my_replication_group' does not have attribute 'primary_endpoint_address' for variable 'aws_elasticache_replication_group.my_replication_group.primary_endpoint_address'

我做错了什么?

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

primary_endpoint_address - (Redis only) The address of the endpoint for the primary node in the replication group, if the cluster mode is disabled.

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