1

我在 AWS ElastiCache 中有一个 Redis 集群

resource "aws_elasticache_replication_group" "custom-redis-cluster" {
...
}

我想访问所有集群的 IP。我曾尝试使用dns_a_record_set从 DNS 名称中手动获取 IP 地址,但效果不佳。

data "dns_a_record_set" "esg-redis-data" {
  host = "custom-redis-cluster.abcd1e.clustercfg.use2.cache.amazonaws.com"
}

variable "custom-redis-cluster-addrs" {
  type = list(string)
  value = data.dns_a_record_set.custom-redis-cluster.addrs
}

错误

Error: Unsupported argument

  on endpoint.services.tf line 37, in variable "custom-redis-cluster-addrs":
  37:   value = data.dns_a_record_set.custom-redis-cluster.addrs

我应该如何从 Terraform 获取所有 Redis 集群的 IP 地址?

有没有办法动态获取 Redis 集群 DNS 名称而不是硬编码?

4

1 回答 1

2

不能使用变量 来定义custom-redis-cluster-addrs变量。但是您可以创建一个local

locals {
    custom-redis-cluster-addrs = data.dns_a_record_set.custom-redis-cluster.addrs
}

local.custom-redis-cluster-addrs在需要的地方使用它。

于 2021-08-13T07:38:02.583 回答