लोचदार बीनस्टॉक पर्यावरण ईएलबी के लिए उप-डोमेन नामों के उपनाम के लिए सही रूट 53 क्लाउडफॉर्मेशन कॉन्फ़िगरेशन क्या है?क्लाउडफॉर्मेशन का उपयोग कर एक लोचदार बीनस्टॉक पर्यावरण के लिए डोमेन नाम को उपनाम कैसे करें?
मैं मैपिंग के Amazon Route 53 Hosted Zone ID मेज से HostedZoneId
रों की नकल की है:
"MyBeanstalkConfig": {
"Type": "AWS::ElasticBeanstalk::ConfigurationTemplate",
"Properties": {
"OptionSettings": {
{ "Namespace": "aws:elb:listener:80", "OptionName": "ListenerEnabled", "Value" : "false" },
{ "Namespace": "aws:elb:listener:443", "OptionName": "ListenerEnabled", "Value" : "true" },
{ "Namespace": "aws:elb:listener:443", "OptionName": "InstancePort", "Value" : "8081" },
{ "Namespace": "aws:elb:listener:443", "OptionName": "ListenerProtocol", "Value" : "HTTPS" },
{ "Namespace": "aws:elb:listener:443", "OptionName": "SSLCertificateId", "Value" : "arn:aws:iam::[accountNbr]:server-certificate/example-cert-name" },
[...]
}
}
},
"MyStageBeanstalkEnv": {
"Type": "AWS::ElasticBeanstalk::Environment",
"Properties": {
"Description": "Stage Environment",
"TemplateName": { "Ref": "MyBeanstalkConfig" },
[...]
}
},
"MyProdBeanstalkEnv": {
"Type": "AWS::ElasticBeanstalk::Environment",
"Properties": {
"Description": "Production Environment",
"TemplateName": { "Ref": "MyBeanstalkConfig" },
[...]
}
},
आउटपुट:
"StageEndpoint" : {
"Description" : "endpoint of the stage environment",
"Value" : { "Fn::GetAtt" : [ "MyStageBeanstalkEnv", "EndpointURL" ] }
},
"ProdEndpoint" : {
"Description" : "endpoint of the production environment",
"Value" : { "Fn::GetAtt" : [ "MyProdBeanstalkEnv", "EndpointURL" ] }
}
दोनों चरण
"Beanstalk2Route53HostedZoneId" : {
"us-east-1" : { "HostedZoneId": "Z117KPS5GTRQ2G" },
"us-west-1" : { "HostedZoneId": "Z1LQECGX5PH1X" },
"us-west-2" : { "HostedZoneId": "Z38NKT9BP95V3O" },
"eu-west-1" : { "HostedZoneId": "Z2NYPWQ7DFZAZH" },
"eu-central-1" : { "HostedZoneId": "Z1FRNW7UH4DEZJ" },
"ap-northeast-1" : { "HostedZoneId": "Z1R25G3KIG2GBW" },
"ap-northeast-2" : { "HostedZoneId": "Z3JE5OI70TWKCP" },
"ap-southeast-1" : { "HostedZoneId": "Z16FZ9L249IFLT" },
"ap-southeast-2" : { "HostedZoneId": "Z2PCDNR3VC2G1N" },
"sa-east-1" : { "HostedZoneId": "Z10X7K2B4QSOFV" }
}
मेरे संसाधनों दो बीनस्टॉक वातावरण है और प्रोड बीनस्टॉक वातावरण काम कर रहे हैं, यानी वे MyStageBeanstalkEnv.eu-west-1.elasticbeanstalk.com
पर कॉल के जवाब के साथ-साथ { "Fn::GetAtt" : [ "MyStageBeanstalkEnv", "EndpointURL" ] }
(जो awseb-[abc-123-xyz].eu-west-1.elb.amazonaws.com
जैसा दिखता है) द्वारा दिए गए अंतराल का जवाब दें। अनजाने में, प्रमाण मान्य नहीं है क्योंकि यह डोमेन नाम या तो stage.example.com
या prod.example.com
होने की अपेक्षा करता है।
अब मैं रूट 53 विन्यास जोड़ने का प्रयास:
"ExampleDomainHostedZone": {
"Type" : "AWS::Route53::HostedZone",
"Properties" : {
"Name" : "example.com"
}
},
"ExampleDomainRecordSetGroup" : {
"Type" : "AWS::Route53::RecordSetGroup",
"Properties" : {
"HostedZoneId" : { "Ref": "ExampleDomainHostedZone" },
"RecordSets" : [{
"AliasTarget" : {
"DNSName" : { "Fn::GetAtt" : ["MyStageBeanstalkEnv", "EndpointURL"] },
"EvaluateTargetHealth" : false,
"HostedZoneId" : { "Fn::FindInMap" : [ "Beanstalk2Route53HostedZoneId", {"Ref" : "AWS::Region"}, "HostedZoneId" ]}
},
"Name" : "stage.example.com",
"Type": "A"
},
{
"AliasTarget" : {
"DNSName" : { "Fn::GetAtt" : ["MyProdBeanstalkEnv", "EndpointURL"] },
"EvaluateTargetHealth" : false,
"HostedZoneId" : { "Fn::FindInMap" : [ "Beanstalk2Route53HostedZoneId", {"Ref" : "AWS::Region"}, "HostedZoneId" ]}
},
"Name" : "prod.example.com",
"Type": "A"
}]
}
},
जब मैं CloudFormation ढेर मैं एडब्ल्यूएस कंसोल में निम्न त्रुटि प्राप्त अद्यतन करने का प्रयास:
16:12 : 00 यूटीसी + 0200 CREATE_FAILED AWS :: रूट 53 :: रिकॉर्डसेट समूह उदाहरणडोमेन रिकॉर्डरसेट समूह ने उपनाम को लक्षित करने का प्रयास किया- [abc-123-xyz] .eu-west-1.elb.amazonaws.com।, ज़ोन Z2NYPWQ7DFZAZH में ए टाइप करें, लेकिन उपनाम लक्ष्य नाम बुद्धि नहीं झूठ बोलता है हिन लक्ष्य क्षेत्र
इस संदर्भ में, awseb-[abc-123-xyz].eu-west-1.elb.amazonaws.com
बीनस्टॉक ईएलबी द्वारा प्रदान किया गया वही यूआरएल है।
टिप्पणियाँ:
- मैं सफलतापूर्वक वर्णन To add an alias resource record set in Amazon Route 53 निम्नलिखित सेटअप रूट 53 उर्फ संसाधन एडब्ल्यूएस कंसोल में एक ही बीनस्टॉक वातावरण को रिकॉर्ड में कामयाब रहे, तो यह "बस" हस्तांतरण के बारे में एक सवाल है क्लाउडफॉर्मेशन टेम्पलेट में ये कॉन्फ़िगरेशन चरण।
- ढेर
eu-west-1
में तैनात किया गया है। AWS::Route53::RecordSetGroup
संसाधन का उपयोग करने के बजाय मैंने दो अलगAWS::Route53::RecordSet
संसाधन बनाने की भी कोशिश की है, लेकिन स्टैक अपडेट एक ही त्रुटि के साथ विफल रहा है।
मैं एक ही समस्या में पड़ गए हैं। ऐसा लगता है कि, आपके उत्तर की मेरी समझ से, कि एक ईबी पर्यावरण के लिए होस्टेड जोन आईडी को मैप करने का कोई तरीका नहीं है जो पहले से मौजूद नहीं है? यानी मुझे केवल एक सीएनएन बनाना होगा जो इसके बजाय ईएलबी को इंगित करता है (क्योंकि यह केवल एकमात्र आउटपुट है जिसे मैं सीएफएन टेम्पलेट के भीतर से प्राप्त कर सकता हूं?) या कोई उपनाम रिकॉर्ड और मानचित्र बनाने के लिए CononicalHostedZoneNameID प्राप्त करने का कोई तरीका है यह एक स्थायी तरीके से, मेरे क्षेत्र के लिए प्रति क्षेत्र? मैं पूछता हूं, क्योंकि सीएलआई के साथ खींचा गया Z3NF1Z3NOM5OY2 ऐसा कोई मानक रूट 53 एंडपॉइंट नहीं है जो अमेज़ॅन दस्तावेज़ है। – Marty
एक ही समस्या होने के बाद। अविश्वसनीय है कि आप CFN टेम्पलेट में CanonicalHostedZoneNameId नहीं प्राप्त कर सकते हैं! अगर आपको प्रति माह हार्ड-कोडिंग से अलग कोई अन्य समाधान मिल जाए तो कृपया अपडेट करें। –