amazon-web-services - 如何使用 Java AWS SDK 为 EBS 卷启用 'delete on termination'?

标签 amazon-web-services amazon-ec2

我正在尝试找到设置/方法,通过它我们可以告诉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/

相关文章:

amazon-web-services - 是否可以自动删除 AWS S3 中超过 10 分钟的对象?

amazon-web-services - 将旧 RDS 流量重定向到 AWS 中的新 RDS

powershell - 适用于 Powershell Get-EC2Instance 过滤器的 AWS 工具

amazon-ec2 - EC2 用于处理需求高峰

python - 在ubuntu EC2深度学习实例中通过jupyter笔记本从s3读取数据

javascript - DynamoDB 查询错误 : Multiple Validation Error

python-2.7 - AWS CLI 不适用于 Mac OSX Yosemite

amazon-web-services - Amazon SQS - 使消息不可见 x 秒

ssl - 在负载均衡器中配置 HTTPS 后无法访问 Elastic Beanstalk 上的 HTTPS 站点

linux - 在 ec2-linux AMI 上安装最新版本的 vsftpd