首页 > 解决方案 > AWS Golang SDK - 如何将 DeleteOnTermination 放在 EBS 卷上?

问题描述

我正在寻找一种使用 AWS Golang SDK 在 EBS 卷上放置 DeleteOnTermination 位的方法。我已经尝试过这段代码,但它不起作用:

attach := &ec2.AttachVolumeInput{
        Device:     aws.String(*DeviceName),
        InstanceId: aws.String(*instanceID),
        VolumeId:   aws.String(*VolumeId),
    }

volumeAttach, errAttach := client.AttachVolume(attach)
if errAttach != nil {
    return errAttach
}

volumeAttach.SetDeleteOnTermination(true)

我在文档中没有找到任何有用的线索,我找不到是我的错误。有人有想法吗?

谢谢 !

标签: amazon-web-servicesgo

解决方案


我已经解决了我的问题,这里是解决方案:

mappingSpecification := ec2.InstanceBlockDeviceMappingSpecification{
        DeviceName: aws.String(deviceName),
        Ebs: &ec2.EbsInstanceBlockDeviceSpecification{
            DeleteOnTermination: aws.Bool(true),
            VolumeId:            aws.String(volumeId),
        },
    }

    attributeInput := ec2.ModifyInstanceAttributeInput{
        BlockDeviceMappings: []*ec2.InstanceBlockDeviceMappingSpecification{&mappingSpecification},
        InstanceId:          instanceID,
    }

    requestModify, _ := e.client.ModifyInstanceAttributeRequest(&attributeInput)

    errorRequest := requestModify.Send()
    if errorRequest != nil {
        return errorRequest
    }

这段代码对我有用。


推荐阅读