Я пытаюсь создать стек для (в настоящее время) микросервисов 9 .NET Core, которые будут работать в ECS Fargate и обмениваться данными друг с другом через App Mesh. Я планирую создать стек инфраструктуры, который создает ресурс App Mesh и кластер ECS, а также стек Microservice, который создает ресурсы для каждой службы и добавляет их в кластер App Mesh и ECS.
В настоящее время у меня есть этот код:
Vpc = Amazon.CDK.AWS.EC2.Vpc.FromLookup(this, "vpc", new VpcLookupOptions
{
VpcId = "xxxxxxxxxxxx"
});
DefaultCloudMapNamespace = new CloudMapNamespaceOptions
{
Vpc = Vpc,
Name = dnsNamespace,
Type = NamespaceType.DNS_PRIVATE,
};
EcsCluster = new Cluster(this, $"{Env}-linux-cluster", new ClusterProps
{
Vpc = Vpc,
ClusterName = $"{Env}-linux-cluster",
DefaultCloudMapNamespace = DefaultCloudMapNamespace
});
Вроде бы все нормально - он создает размещенную зону в Route53.
Когда я создаю Service
для Cloud Map, я использую этот код:
var cloudMapService = new Service(this, serviceName, new ServiceProps
{
Namespace = new PrivateDnsNamespace(this, $"{serviceNameHyphen}-cm-namespace", new PrivateDnsNamespaceProps
{
Vpc = infrastructureStack.Vpc,
Name = $"{serviceName}.dev",
}),
DnsRecordType = DnsRecordType.SRV,
DnsTtl = Duration.Seconds(60),
RoutingPolicy = RoutingPolicy.MULTIVALUE,
Name = serviceName
});
Это первый раз, когда я работаю с App Mesh & Cloud Map, но я ожидаю использовать одну и ту же частную размещенную зону как для пространства имен Cloud Map, так и для пространства имен Cloud Map Service.
Это правильный подход?