我在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名称动态而不是硬编码?
你不能使用变量来定义custom-redis-cluster-addrs
变量。但是你可以创建一个local
:
locals {
custom-redis-cluster-addrs = data.dns_a_record_set.custom-redis-cluster.addrs
}
并在需要的地方使用它作为local.custom-redis-cluster-addrs
。