Saya punya string yang dibentuk dari sejumlah variabel yang saya gunakan untuk banyak hal yang berbeda seperti Tag dan nama host.
apakah ada cara untuk membuat string yang dapat digunakan kembali yang saya bisa Ref melalui template?
setiap pemikiran tentang ini akan sangat dihargai. sunting: Contoh akan melewati 2 parameter seperti ProjectName dan Lingkungan bergabung dengan mereka
"Fn::Join" : [ "-", [ {"Ref":"ProjectName"}, {"Ref":"Environment"} ] ]
dan menggunakan hasilnya di sejumlah tempat
Jawaban:
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 ...
Dan di sini adalah ekspresi akses untuk itu di Sumber Daya
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?
sumber
Anda dapat menggunakan params atau pemetaan untuk menyimpan string yang dapat Anda gunakan di template Anda.
sumber
sayangnya saya telah menemukan bahwa itu tidak mungkin untuk melakukan apa yang saya coba capai. itu tidak membantu tetapi itu dia.
sumber
Kami benar-benar membuat nama tumpukan CloudFormation kami tepat
{ProjectName}-{Environment}
selamaaws cloudformation deploy
. Sudahkah Anda mempertimbangkan konvensi penamaan ini untuk nama tumpukan Anda?Setelah itu, Anda bisa merujuknya sebagai
{ "Fn:Sub": "${AWS::StackName}" }
.sumber