【问题标题】:How to enable 'delete on termination' for EBS volumes using Java AWS SDK?如何使用 Java AWS SDK 为 EBS 卷启用“终止时删除”?
【发布时间】:2014-12-10 04:37:52
【问题描述】:

我正在尝试找到可以告诉 AWS SDK 在终止时删除 EBS 卷的设置/方法。此设置可通过 AWS 控制台使用,但不能通过 AWS Java SDK。

我创建 EBS 卷的代码如下所示

CreateVolumeRequest volumeRequest = new CreateVolumeRequest(volumeSize, availabilityZone);
Volume vol = EC2_CLIENT.createVolume(volumeRequest).getVolume();

谁能告诉我如何使用 Java SDK 为 EBS 卷启用终止时删除?

【问题讨论】:

  • 不知道它是否适用于 Java,但我注意到 boto(用于 Python)对 modify_network_interface_attribute() 有一个 deleteOnTermination 设置。

标签: amazon-web-services amazon-ec2


【解决方案1】:

可能您自己找到了解决方案或解决方法,但我遇到了同样的问题,我在 Google 上找到了这个问题,所以我会为未来的开发人员写一个答案。

似乎在创建或附加 EBS 期间无法在终止时启用删除,而只能通过 修改实例属性 操作。 This answer 解释了如何通过 CLI 执行此操作。 AWS SDK for Java 的类似方法是使用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);

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    相关资源
    最近更新 更多