我正在尝试找到设置/方法,通过它我们可以告诉AWS SDK在终止时删除EBS卷。此设置可通过 AWS 控制台使用,但不能通过 AWS Java SDK 使用。
我创建 EBS 卷的代码如下所示
CreateVolumeRequest volumeRequest = new CreateVolumeRequest(volumeSize, availabilityZone);
Volume vol = EC2_CLIENT.createVolume(volumeRequest).getVolume();
谁能告诉我如何使用 Java SDK 对 EBS 卷启用终止删除功能?
最佳答案
可能您自己找到了解决方案或解决方法,但我也遇到了同样的问题,并且我在 Google 上找到了这个问题,因此我将为 future 的开发人员编写一个答案。
似乎在创建或附加EBS期间无法启用终止删除,而只能通过修改实例属性操作来完成。 This answer解释了如何通过 CLI 执行此操作。 适用于 Java 的 AWS 开发工具包的类似方法是使用 AmazonEC2Client#modifyInstanceAttribute() 更改设备映射设置。
我的代码如下所示:
EbsInstanceBlockDeviceSpecification ebsSpecification = new EbsInstanceBlockDeviceSpecification()
.withDeleteOnTermination(true);
InstanceBlockDeviceMappingSpecification mappingSpecification = new InstanceBlockDeviceMappingSpecification()
.withDeviceName(deviceName)
.withEbs(ebsSpecification);
ModifyInstanceAttributeRequest request = new ModifyInstanceAttributeRequest()
.withInstanceId(instanceId)
.withBlockDeviceMappings(mappingSpecification);
ec2Client.modifyInstanceAttribute(request);
关于amazon-web-services - 如何使用 Java AWS SDK 为 EBS 卷启用 'delete on termination'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393435/