给出一个包含EC2实例的cloudformation模板,该实例使用如下定义的EBS卷:
DefaultVolume:
Type: AWS::EC2::Volume
DeletionPolicy: Snapshot
Properties:
AvailabilityZone: eu-west-1a
Size: 8
Tags:
-
Key: Name
Value: Jenkins
VolumeType: gp2
如何设置cloudformation模板,以便在重新创建堆栈(在删除并创建ebs快照之后)时,ebs从快照中恢复数据,而不是创建全新的卷?
答案 0 :(得分:0)
我不确定是否有办法引用已删除堆栈的快照。与此有关的一个问题是,如果从同一模板创建多个堆栈,它将如何知道要拍摄哪个快照?
您可以做的是为模板的快照ID添加一个参数,并在指定后与SnapshotId
一起使用。
Parameters:
OldSnapshot:
Type: String
Default: ""
Conditions:
OldSnapshotAvailable:
!Not [!Equals [!Ref OldSnapshot, ""]]
Resources:
DefaultVolume:
Type: AWS::EC2::Volume
DeletionPolicy: Snapshot
Properties:
AvailabilityZone: eu-west-1a
Size: 8
Tags:
-
Key: Name
Value: Jenkins
VolumeType: gp2
SnapshotId: !If [OldSnapshotAvailable, !Ref OldSnapshot, !Ref AWS::NoValue]