我正在尝试为(当前)9 个 .NET Core 微服务创建一个堆栈,以在 ECS Fargate 中运行并通过 App Mesh 相互通信。我计划创建一个基础设施堆栈,用于创建 App Mesh 资源和 ECS 集群,以及一个微服务堆栈,为每个服务创建资源并将它们添加到 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 命名空间使用相同的私有托管区域。
这是正确的方法吗?