Sayangnya percobaan saya setuju dengan Graeme kesimpulan Anda. Saya telah berjuang dengan ini selama beberapa waktu tetapi tidak menemukan cara menghitung String melalui Fn :: Bergabung dan simpan untuk nanti dalam template.
Bisakah saya berbagi dengan Anda contoh yang khas?
Pada 2014-09-18, cara paling canggih untuk menyimpan nilai string untuk digunakan kembali di bagian Sumber Daya adalah melalui Pemetaan (tingkat kedua). Lebih baik lagi, saya dapat melakukan pra-komputasi suatu Kondisi dan menentukan apakah akan menggunakan string atau tidak. Namun sayangnya penyimpanan string tidak berfungsi.
Berikut adalah contoh bait Pemetaan seperti itu ...
"LoadBalancerBucketMap": {
"BucketName": {
"string": {
"Fn::Join": [
"-",
[
"mylb",
{
"Ref": "Environment"
},
"logs"
]
]
}
}
},
Dan di sini adalah ekspresi akses untuk itu di Sumber Daya
"S3BucketName": {
"Fn::FindInMap": [
"LoadBalancerBucketMap",
"BucketName",
"string"
}
Dalam contoh ini, Lingkungan adalah Parameter string literal dengan default yang sesuai. Jadi itu adalah contoh yang sangat jelas untuk membuat dan menggunakan kembali string. Tapi inilah yang dikatakan prosesor CloudFormation ...
Kesalahan validasi template: Kesalahan format templat: Setiap atribut pemetaan harus berupa string atau daftar.
Jadi saya membagikan rasa frustrasi Anda bahwa sepertinya tidak ada cara dalam template untuk memberikan efek dari variabel string sementara.
... Sejauh yang saya bisa lihat. Tetapi jawaban yang Anda terima semula mengatakan hal yang sebaliknya (walaupun tanpa contoh).
Jadi, jika ada yang punya contoh solusi, maka bisakah mereka berbagi?