这是我的EC2与EBS卷的连接代码。
private static AttachVolumeResult attachEBSVolume(String volumeId, String instanceId, String device){
AttachVolumeRequest attachVolReq = new AttachVolumeRequest(volumeId, instanceId, device);
return ec2.attachVolume(attachVolReq);
}
第一次运行正常,但是当我再次运行它时,出现以下异常。
请告诉我如何解决该问题,还请告诉我该参数中的deviceName(第3个参数)参数是什么,可能的值是什么。谢谢
This is function call shown below
attachEBSVolume(createRes.getVolume().getVolumeId(), "InstanceIDhere", "xvdg");
以下是异常出现::
AWS Error Code: InvalidParameterValue, AWS Error Message: Invalid value 'xvdg' for unixDevice. Attachment point xvdg is already in use.
最佳答案
一台EC2设备只能附加一个EBS卷。有多种设备可用,例如xvdg,xvdh,/ dev / sdf。在代码中,您正在尝试将不同的EBS卷附加到同一设备,这是AWS不允许的。因此您只能在一台设备上附加一个EBS卷。
您可以使用此功能保存EBS卷的ID
CreateVolumeResult createRes = makeEBSVolume(volSize, availabilityZone, "taghere");
createRes.getVolume().getVolumeId() // to save the volume ID
保存此ID后,您可以在每次需要时将此ID附加到EC2(实例ID)上。
关于java - 将EC2与ebs卷连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22647708/