2017-02-23 61 views
0

Я создаю целый пакет сервисов через CloudFormation. ELB создается, а позже - DNS Record Set для ELB DNSName. Набор записей зависит от ELB.Cloudformation: не удается создать ELB и DNSRecord вместе

"dns": { 
    "Type": "AWS::Route53::RecordSetGroup", 
    "Properties": { 
    "HostedZoneName": "*******.com.", 
    "RecordSets": [ 
     { 
     "Name": { 
      "Fn::Join": [ 
      "", 
      [ 
       "\\052.", 
       { 
       "Ref": "EnvUrl" 
       }, 
       ".******.com" 
      ] 
      ] 
     }, 
     "Type": "A", 
     "AliasTarget": { 
      "HostedZoneId": "Z3******O77V", 
      "DNSName": {"Fn::GetAtt": [ "elb", "DNSName" ]} 
     } 
     } 
    ] 
    }, 
    "Metadata": { 
    "AWS::CloudFormation::Designer": { 
     "id": "c1513eaa-fdaa-4fef-b50c-bdd178dd0446" 
    } 
    }, 
    "DependsOn": [ 
    "elb" 
    ] 
} 



"elb": { 
     "Type": "AWS::ElasticLoadBalancing::LoadBalancer", 
     "Properties": { 
     "Policies": [ 
      { 
      "PolicyName": "AWSConsole-SSLNegotiationPolicy", 
      "PolicyType": "SSLNegotiationPolicyType", 
      "Attributes": [ 
       { 
       "Name": "Reference-Security-Policy", 
       ....... 

Проблема в том, что CloudFormation не может создать набор записей. Ошибка:

Tried to create an alias that targets ctf21-elb-1huy2****pkn-727***38.eu-central-1.elb.amazonaws.com, 
type A in zone Z3******O77V, but the alias target name does not lie within the target zone 

Я считаю, что это может быть из-за отсутствия балансировки нагрузки сразу же после его создания. Как будто вы создаете его вручную, он не будет отображаться сразу в поле выбора псевдонимов на Route53, но потребуется несколько минут.

Я также попытался добавить dualstack.-dnsname-, используя Fn::Join, тот же выход.

Есть ли что-то, что я делаю неправильно? Есть ли что-то лучше, чем я могу сделать, чтобы исправить эту проблему?

ответ

1

Возможно, ваша зона ELB неверна.

Попробуйте это в AliasTarget.

"AliasTarget": { 
      "DNSName": { "Fn::GetAtt": [ "elb", "DNSName" ]}, 
      "HostedZoneId": { "Fn::GetAtt": [ "elb", "CanonicalHostedZoneNameID"]} 
} 
+0

Aaaaah Я думал, что должен был разместить свой идентификатор зоны Route53 здесь, я не знал, что у ELB есть еще один идентификатор зоны для себя. Я проверю сейчас. – zed

+0

Удивительный, дайте мне знать, когда он работает – Gigapalmer

+0

Работал красиво. Благодарю. – zed