कार्य मुझे करने की आवश्यकता है सीडीएन को एस 3 बाल्टी पर निर्भर होना चाहिए, लेकिन हम एक नया निर्माण करने के बजाय मौजूदा बाल्टी का भी उपयोग कर सकते हैं।क्लाउडफॉर्मेशन, निर्भर करता है पर निर्भर करता है
यहाँ नमूना कोड है कि मैं के साथ लड़ रहा है:
"Parameters" : {
"UseExistingBucket" : {
"Description" : "Yes/No",
"Default" : "yes",
"Type" : "String",
"AllowedValues" : [ "yes", "no" ]
}
},
"Conditions" : {
"CreateS3Resources" : {"Fn::Equals" : [{"Ref" : "UseExistingBucket"}, "no"]}
},
"Resources" : {
"StaticBucket" : {
"Type" : "AWS::S3::Bucket",
"Condition" : "CreateS3Resources",
"Properties" : {
"BucketName" : { "Fn::Join": [ "-", [ "app", { "Ref": "EnvType" }, "static" ] ] }
},
"DeletionPolicy": "Retain"
},
"MyStaticDistribution": {
"Type": "AWS::CloudFront::Distribution",
"Properties": {
"DistributionConfig": {
"Origins": [
{
"DomainName": {
"Fn::If" : [
"CreateS3Resources",
{ "Fn::Join": [ "-", [ "app", { "Ref": "EnvType" }, "static" ] ] },
{"Fn::GetAtt": [ "StaticBucket", "DomainName" ] }
]
},
"Id": "S3Origin",
}
]
}
},
"DependsOn": [{
"Fn::If" : [
"CreateS3Resources",
{ "Fn::Join": [ "-", [ "app", { "Ref": "EnvType" }, "static" ] ] },
""
]
}]
}
}
कृपया मुझे किसी भी अधिक जानकारी के सुझाव है कि यदि आवश्यक
वहाँ प्रलेखन कहीं है का कहना है कि कि GetAtt स्वचालित रूप से होगा आगे बढ़ने से पहले अन्य संसाधनों को समाप्त करने की प्रतीक्षा करें? – doeiqts
@doeiqts अच्छा सवाल है। दुर्भाग्य से मैंने इसे दस्तावेज नहीं देखा है, लेकिन मुझे विश्वास है कि यह एडब्ल्यूएस उदाहरणों में इसके उपयोग से सच है, तथ्य यह है कि मैंने इसे कई बार काम किया है, और एडब्ल्यूएस इंजीनियरों से मुझे ऐसा करने का निर्देश दिया है। मैंने एडब्ल्यूएस से लैम्ब्डा उदाहरण जोड़ा है जिसमें उन्होंने इस तरह सृजन में देरी की है। लेकिन हाँ कुछ आधिकारिक दस्तावेज क्लीनर होगा। –