3

Я хотел бы создать хостинговую зону Route53 для субдомена и запись NS в родительский домен.Как создать субдомен Хостинговая зона с использованием Cloud Formation

Скажем, у меня есть:

example.com 

и я хочу размещаемой зону для субдомена:

build.example.com 

Хостинг Создание зоны работает:

ClusterHostedZone: 
    Type: "AWS::Route53::HostedZone" 
    Properties: 
    Name: !Ref DomainName 
    HostedZoneConfig: 
     Comment: Managed by Cloud Formation 
    HostedZoneTags: 
     - Key: KubernetesCluster 
     Value: !Ref KubernetesCluster 

Делегирование ответственности за поддомен доном t:

ParentHostedZoneClusterRecord: 
    Type: "AWS::Route53::RecordSet" 
    Properties: 
    Name: !Ref DomainName 
    Comment: Managed by Cloud Formation 
    HostedZoneId: !Ref ParentHostedZoneID 
    TTL: 30 
    Type: NS 
    ResourceRecords: !GetAtt ClusterHostedZone.NameServers 

Это не реализовано, и я не знаю , как получить эту информацию:

ResourceRecords: !GetAtt ClusterHostedZone.NameServers 

эта простая функция просто отсутствует в облаке формирования?

+0

Будет ли RecordSetGroup решением? http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup.html – masterforker

+0

Извините, но я не понимаю, как это поможет. Не могли бы вы уточнить? –

+0

Я правильно понял, что вы хотите связать кучу псевдонимов в зоне размещения? – masterforker

ответ

2

подтвердил я с сотрудником AWS не было возможности вокруг января 2017.

Даже с настраиваемой лямбда it was not possible until April вследствие:

В AWS CloudFormation вы не можете создавать записи типа NS или SOA.

Теперь это выглядит как behavior is different:

В частности, вы не можете создавать или удалять NS или записи SOA для корневого домена размещаемой зоны, но вы можете создать их для субдоменов делегировать.

Получение серверов имен из размещенного зоны [теперь можно], я проверял. (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#w2ab2c21c10d825c11)

Единственное ограничение, я не был в состоянии преодолеть был кросс-счет Hosted Zones отношения/но это должно быть выполнимо с достаточной магией CF/Lambda.

+0

Это неверно. В приведенной выше ссылке НЕ сказано, что вы не можете создавать NS-записи, в частности говорится, что вы можете их создать для поддоменов: «В AWS CloudFormation вы не можете изменять записи NS и SOA для размещенной зоны, созданной автоматически Amazon Route 53. В частности, вы не можете создавать или удалять записи NS или SOA для корневого домена вашей размещенной зоны, но вы можете создать их для делегирования субдоменов. Например, для размещенной зоны mydomain.net вы не можете создать NS-запись для mydomain.net но вы можете создать NS-запись для nnnn.m.momom.net для делегирования ». –

+0

Если бы вы могли предоставить примерный стек, это было бы оценено –

+0

Посмотрите на этот стек: https://github.com/ConradIrwin/aws-name-server/blob/master/cloudformation-template.json –

0

Чтобы добавить размещенную зону для субдомена, вы должны создать ее, аналогичную описанной существующей размещенной зоне, просто изменив свойство Name на субдомен.

Однако, исходя из вашего вопроса, похоже, что вы на самом деле пытаетесь добавить набор записей для субдомена (так что build.[DomainName] разрешает ваш кластер), а не отдельную размещенную зону.

Чтобы добавить набор записей для поддомена, вы хотите, чтобы указать 'build.[DomainName]' как имя RecordSet субдомена, и использовать A record с указанием IP-адреса целевой для субдомена (или CNAME с указанием «канонического» доменное имя) , а не NS record:

ParentHostedZoneClusterRecord: 
    Type: "AWS::Route53::RecordSet" 
    Properties: 
    Name: 
     Fn::Join: [".", ["build", !Ref DomainName]] 
    Comment: Managed by Cloud Formation 
    HostedZoneId: !Ref ParentHostedZoneID 
    TTL: 30 
    Type: A 
    ResourceRecords: [!Ref KubernetesClusterIp] 
+0

Я хочу добавить запись 'NS' в родительский домен, создание Hosted Zone прост, это родительский что я не могу сделать с CF –

2

Это работает для моего, возможно, ваш шаблон не работает, потому что вы не указываете DependsOn и ресурсы не создаются по порядку.

stagingHostedZone: 
    Type: 'AWS::Route53::HostedZone' 
    Properties: 
     HostedZoneConfig: 
      Comment: Hosted zone for staging environment 
     Name: staging.example.com 

nsRootHostedZoneRecordSet: 
    Type: 'AWS::Route53::RecordSet' 
    Properties: 
     HostedZoneId: Z25********* 
     Name: staging.example.com. 
     Type: NS 
     TTL: '900' 
     ResourceRecords: !GetAtt stagingHostedZone.NameServers 
    DependsOn: 
     stagingHostedZone 
+0

выглядит как добавленные функции AWS с января –