6
我在嘗試設置一個cloudformation模板,它將啓動一個乾淨的實例或一個來自快照。我希望能夠使用的if/else類型語句,以便看起來像AWS cloudformation可選行
pseudo code:
if InputSnapshotId:
"SnapshotId" : {"Ref" : "InputSnapshotId"},
else:
"Size" : 20,
東西cloudformation我試圖像許多事情:
"WebserverInstanceDataVolume" : {
"Type" : "AWS::EC2::Volume",
"Properties" : {
"Fn::If" : [
{"Ref" : "FromSnapshot"},
{"SnapshotId" : { "Ref" : "InputSnapshotId" }},
{"Size" : "20"}
],
"VolumeType" : "standard",
"AvailabilityZone" : { "Fn::GetAtt" : [ "WebserverInstance", "AvailabilityZone" ]},
"Tags" : [
{"Key" : "Role", "Value": "data" },
]
},
"DeletionPolicy" : "Delete"
},
或包裹中Fn ::如果在{}中:
{"Fn::If" : [
{"Ref" : "FromSnapshot"},
{"SnapshotId" : { "Ref" : "InputSnapshotId" }},
{"Size" : "20"}
]}
所有這些引發不同類型或錯誤。第一個在雲計算中給出了「遇到不支持的屬性Fn :: If」,第二個只是無效的JSON。我可以快照一個空卷並定義一個大小參數,然後總是傳遞一個SnapshotId和大小,但是我覺得必須有一種方法在雲形成中有一個可選行。
任何想法?
完美的,我不知道我可以定義一個輸入作爲AWS :: NOVALUE,謝謝。 – TristanMatthews 2014-10-02 18:48:17