残念ながら、私の実験はあなたの結論Graemeに同意することです。私はしばらくの間これに苦労しましたが、Fn :: Joinを介して文字列を計算し、テンプレートで後で使用できるようにする方法を見つけませんでした。
典型的な例を紹介できますか?
2014-09-18のように、[リソース]セクションで再利用するための文字列値を保存する最も洗練された方法は、(第2レベルの)マッピングを使用することです。さらに良いことに、条件を事前に計算し、文字列を使用するかどうかを決定できます。しかし、残念ながら、文字列の保存は機能しません。
このようなマッピングの例のスタンザは…
"LoadBalancerBucketMap": {
"BucketName": {
"string": {
"Fn::Join": [
"-",
[
"mylb",
{
"Ref": "Environment"
},
"logs"
]
]
}
}
},
そして、ここにリソースでのアクセス式があります
"S3BucketName": {
"Fn::FindInMap": [
"LoadBalancerBucketMap",
"BucketName",
"string"
}
この例では、Environmentは、便利なデフォルトのリテラル文字列パラメーターです。したがって、これは文字列の作成と再利用の非常に明確な例です。しかし、CloudFormationプロセッサが言うことは…
テンプレート検証エラー:テンプレート形式エラー:すべてのマッピング属性は文字列またはリストでなければなりません。
したがって、テンプレートには一時的な文字列変数の効果を提供する方法がないように見えるという不満を共有します。
…私が見る限り。しかし、最初に受け取った答えは、これの反対を言いました(例はありませんが)。
だから誰かが回避策の例を持っているなら、彼らは共有してもらえますか?