Maalesef deneylerim sonuç Graeme ile aynı fikirde olmak. Bir süredir bununla mücadele ettim ama Fn :: Join ile bir String hesaplamanın ve şablonda daha sonra saklamanın bir yolunu bulamadım.
Sizinle tipik bir örnek paylaşabilir miyim?
2014-09-18'de olduğu gibi, Kaynaklar bölümünde yeniden kullanım için bir dize değeri depolamanın en karmaşık yolu (ikinci düzey) Eşleme'dir. Daha da iyisi, bir Koşulu önceden hesaplayabilir ve dizeyi kullanıp kullanmayacağımı belirleyebilirim. Ancak maalesef bir ipin depolanması işe yaramıyor.
İşte böyle bir Haritalama örneği ...
"LoadBalancerBucketMap": {
"BucketName": {
"string": {
"Fn::Join": [
"-",
[
"mylb",
{
"Ref": "Environment"
},
"logs"
]
]
}
}
},
Ve işte ona Kaynakta bir erişim ifadesi
"S3BucketName": {
"Fn::FindInMap": [
"LoadBalancerBucketMap",
"BucketName",
"string"
}
Bu örnekte, Ortam uygun varsayılan değeri olan değişmez bir dize parametresidir. Bu, bir dize oluşturmaya ve yeniden kullanmaya çok açık bir örnektir. Ancak CloudFormation işlemcisi şöyle diyor…
Şablon doğrulama hatası: Şablon biçimi hatası: Her Eşleme özelliği bir Dize veya Liste olmalıdır.
Bu yüzden şablonda geçici bir dize değişkeninin etkisini sağlamanın bir yolu olmadığı hayal kırıklığını paylaşıyorum.
… Görebildiğim kadarıyla. Ama ilk başta aldığınız cevap bunun tersini söyledi (örnek olmasa da).
Birisi örnek bir geçici çözüme sahipse, lütfen paylaşabilirler mi?