如何使用AWS CDK创建AWS App Mesh

时间:2019-10-19 09:48:25

标签: amazon-web-services aws-cdk aws-app-mesh

我正在尝试为(当前)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中创建了一个托管区域。

为Cloud Map创建Service时,我正在使用以下代码:

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名称空间使用相同的私有托管区域。

这是正确的方法吗?

0 个答案:

没有答案