2017-02-23 38 views
0

我創建通過CloudFormation服務的整個堆棧。 ELB已創建,後來是ELB DNSName的DNS記錄集。記錄集取決於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的別名選擇字段中,但需要幾分鐘時間。

我也嘗試過使用Fn::Join,相同的輸出增加dualstack.-dnsname-

有什麼我做錯了嗎?有什麼比我能解決這個問題更好的嗎?

回答

1

你ELB區可能是錯誤的。

在AliasTarget試試這個。

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

Aaaaah我想我不得不把我的Route53託管區域ID在這裏,我沒有意識到ELB有另一個託管區域ID本身。我現在會測試。 – zed

+0

太棒了,讓我知道它什麼時候工作 – Gigapalmer

+0

工作很好。謝謝。 – zed

相關問題