Amazon-Web-Services
在 cloudformation 中是否可以創建可重用的字元串?
我有一個字元串,它由許多變數組成,我用於許多不同的事物,例如標籤和主機名。
有沒有一種方法可以創建一個我可以通過模板引用的可重用字元串?
對此的任何想法將不勝感激。編輯:一個例子是傳入 2 個參數,例如 ProjectName 和 Environment 加入它們
"Fn::Join" : [ "-", [ {"Ref":"ProjectName"}, {"Ref":"Environment"} ] ]
並在許多地方使用結果
不幸的是,我的實驗與您的 Graeme 結論一致。我已經為此苦苦掙扎了一段時間,但沒有找到一種通過 Fn::Join 計算字元串並將其保留在模板中的方法。
可以和你分享一個典型的例子嗎?
截至 2014 年 9 月 18 日,儲存字元串值以在資源部分重複使用的最複雜方法是通過(二級)映射。更好的是,我可以預先計算一個條件並確定是否使用該字元串。但不幸的是,字元串的儲存不起作用。
這是這樣一個映射的範例節……
"LoadBalancerBucketMap": { "BucketName": { "string": { "Fn::Join": [ "-", [ "mylb", { "Ref": "Environment" }, "logs" ] ] } } },
這是 Resource 中對其的訪問表達式
"S3BucketName": { "Fn::FindInMap": [ "LoadBalancerBucketMap", "BucketName", "string" }
在此範例中,Environment 是具有方便預設值的文字字元串參數。所以這是一個非常清楚的創建和重用字元串的例子。但這是 CloudFormation 處理器所說的……
模板驗證錯誤:模板格式錯誤:每個映射屬性必須是字元串或列表。
因此,我與您一樣感到沮喪的是,模板中似乎沒有辦法提供臨時字元串變數的效果。
……據我所知。但是您最初收到的答案與此相反(儘管沒有範例)。
因此,如果有人確實有範例解決方法,那麼請他們分享一下嗎?