如何在Terraform中获取AWS RDS写入实例的端点?
获取RDS写入实例端点的Terraform配置方案
要仅获取RDS集群中写入实例的端点,你需要利用aws_rds_cluster_instance资源的instance_role属性进行筛选,具体配置如下:
修正后的output.tf配置
output "rds_writer_instance_endpoint" { value = one([ for instance in aws_rds_cluster_instance.cluster_instances : instance.endpoint if instance.instance_role == "WRITER" ]) }
配置说明
aws_rds_cluster_instance.cluster_instances:替换为你实际定义的aws_rds_cluster_instance资源名称- 列表推导式
[for ...]会遍历所有集群实例,筛选出instance_role为WRITER的实例(写入实例的角色固定为WRITER,只读副本为READER) one()函数确保返回单个端点值,而非列表(因为RDS集群中只会存在一个写入实例)
可选简化方案
如果你是单独定义写入实例和只读副本(而非批量创建),可以直接引用写入实例的endpoint属性:
# 假设写入实例单独定义为aws_rds_cluster_instance.writer output "rds_writer_instance_endpoint" { value = aws_rds_cluster_instance.writer.endpoint }
内容的提问来源于stack exchange,提问作者user2586964
相关产品推荐
相关产品推荐

