दुर्भाग्य से मेरे प्रयोग आपके निष्कर्ष ग्रीम से सहमत हैं। मैं कुछ समय तक इससे जूझता रहा, लेकिन Fn के माध्यम से एक स्ट्रिंग की गणना करने का एक तरीका नहीं मिला :: टेम्पलेट में बाद में शामिल होने और इसे रखने के लिए।
क्या मैं आपके साथ एक विशिष्ट उदाहरण साझा कर सकता हूं?
2014-09-18 तक, संसाधन अनुभाग में पुन: उपयोग के लिए एक स्ट्रिंग मान संग्रहीत करने का सबसे परिष्कृत तरीका एक (दूसरे-स्तर) मैपिंग के माध्यम से होगा। बेहतर अभी भी, मैं एक शर्त की पूर्व-गणना कर सकता हूं और यह निर्धारित कर सकता हूं कि स्ट्रिंग का उपयोग करना है या नहीं। लेकिन दुर्भाग्य से एक तार का भंडारण सिर्फ काम नहीं करता है।
इस तरह के मानचित्रण का एक उदाहरण छंद है ...
"LoadBalancerBucketMap": {
"BucketName": {
"string": {
"Fn::Join": [
"-",
[
"mylb",
{
"Ref": "Environment"
},
"logs"
]
]
}
}
},
और यहाँ एक संसाधन में इसका उपयोग अभिव्यक्ति है
"S3BucketName": {
"Fn::FindInMap": [
"LoadBalancerBucketMap",
"BucketName",
"string"
}
इस उदाहरण में, पर्यावरण एक सुविधाजनक डिफ़ॉल्ट के साथ एक शाब्दिक स्ट्रिंग पैरामीटर है। तो यह एक स्ट्रिंग बनाने और फिर से उपयोग करने का एक बहुत स्पष्ट उदाहरण है। लेकिन यहाँ CloudFormation प्रोसेसर क्या कहता है ...
टेम्पलेट सत्यापन त्रुटि: टेम्पलेट प्रारूप त्रुटि: प्रत्येक मैपिंग विशेषता स्ट्रिंग या सूची होनी चाहिए।
इसलिए मैं आपकी हताशा को साझा करता हूं कि अस्थायी स्ट्रिंग चर के प्रभाव को प्रदान करने के लिए टेम्पलेट में एक रास्ता नहीं लगता है।
... जहाँ तक मैं देख सकता हूँ। लेकिन मूल रूप से आपको जो उत्तर मिला, वह इस के विपरीत है (हालांकि एक उदाहरण के बिना)।
तो अगर किसी के पास एक उदाहरण वर्कअराउंड है, तो कृपया उन्हें साझा कर सकते हैं?