Как создать сетку приложения AWS с помощью AWS CDK - PullRequest
1 голос
/ 19 октября 2019

Я пытаюсь создать стек для (в настоящее время) микросервисов 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.

Это правильный подход?

...