我正在AWS ECS中运行一个MySQL数据库(不能使用RDS ),我想使用ECS Service Discovery填充指向该数据库的SRV记录。我正在使用Terraform来配置所有AWS服务。
这是我到目前为止的工作...
resource "aws_service_discovery_service" "mysqldb" {
name = "mysqldb"
health_check_custom_config {
failure_threshold = 3
}
dns_config {
namespace_id = "${aws_service_discovery_private_dns_namespace.stack_local.id}"
dns_records {
ttl = "300"
type = "SRV"
}
routing_policy = "MULTIVALUE"
}
}
resource "aws_service_discovery_private_dns_namespace" "stack_local" {
name = "${var.stack_name}.local"
description = "Testing with AWS Service Discovery"
vpc = "${aws_vpc.vpc.id}"
}
但是,这将创建不符合RFC 2782的SRV记录(mysqldb.stack_name.local.
)。为了符合要求,它应包括服务名称和协议,例如:_mysql_._tcp.mysqldb.stack_name.local.
我尝试将名称更改为_mysql._tcp.mysqldb
之类的方法,但是失败了,因为AWS要求名称必须是一个单独的标签,其中没有任何.
。
是否可以使用带有Terraform的ECS服务发现和Terraform AWS提供程序来创建符合RFC 2782的SRV记录?