bulut dönüşüm içinde yeniden kullanılabilir bir dize oluşturmak mümkün mü?


14

i Etiketler ve ana bilgisayar adları gibi birçok farklı şey için kullandığım değişkenlerin bir dizi oluşan bir dize var.

sadece Ref olsa şablon dışında yapabilirsiniz yeniden kullanılabilir bir dize oluşturmanın bir yolu var mı?

bu konuda herhangi bir düşünce çok takdir edilecektir. edit: Bir örnek ProjectName ve onları birleştirerek Çevre gibi 2 parametre geçirilmesi

"Fn::Join" : [ "-", [ {"Ref":"ProjectName"}, {"Ref":"Environment"} ] ]

ve sonuçları çeşitli yerlerde kullanma



Bence AWS bunun için sağladığı dönüşümler. Ne yazık ki, henüz YAML takma adlarını desteklemiyorlar.
jgomo3

Yanıtlar:


7

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?


2

Şablonlarınızda kullanabileceğiniz dizeleri saklamak için parametreler veya eşlemeler kullanabilirsiniz.


1
Bu yalnızca statik dizeler için geçerlidir. OP, özellikle mümkün görünmeyen hesaplanmış dizeleri istedi.
Joe

0

maalesef elde etmeye çalıştığım şeyi yapmanın mümkün olmadığını gördüm. yardım etmiyor ama işte burada.


0

Aslında CloudFormation yığın ismimizi tam olarak {ProjectName}-{Environment}sırasında yapıyoruz aws cloudformation deploy. Yığın adınız için bu adlandırma kuralını düşündünüz mü?

Daha sonra, sadece referans olarak kullanabilirsiniz { "Fn:Sub": "${AWS::StackName}" }.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.