Sto provando a configurare un modello di cloudformation che avvierà un'istanza pulita o uno da istantanee. Mi piacerebbe essere in grado di utilizzare un tipo di istruzione if/else in modo che sarebbe simile aAWS cloudformation opzionale line
pseudo code:
if InputSnapshotId:
"SnapshotId" : {"Ref" : "InputSnapshotId"},
else:
"Size" : 20,
In cloudformation ho provato un certo numero di cose come:
"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"
},
O avvolgendo la a Fn :: Se in {}:
{"Fn::If" : [
{"Ref" : "FromSnapshot"},
{"SnapshotId" : { "Ref" : "InputSnapshotId" }},
{"Size" : "20"}
]}
Tutto che prende il tipo o errori diversi. Il primo dà una "FN :: If" nella proprietà cloud non verificata incontrata, mentre la seconda non è JSON valida. Potrei creare uno snapshot di un volume vuoto e definire un parametro di dimensione, quindi passare sempre uno SnapshotId e la dimensione, ma mi sembra che ci debba essere un modo per avere una linea opzionale in cloudformation.
Qualche idea?
Perfetto, non mi rendo conto che potrei definire un ingresso come AWS :: NoValue, grazie. – TristanMatthews