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