有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Amazon AWS通过Java API创建EBS(弹性块存储)

我正试图找到一种方法来创建一个新的EBS,并通过AWSJavaSDK按语法将其连接到一个正在运行的实例。我看到了使用命令行工具和基于rest的调用来实现这一点的方法,但没有办法通过SDK来实现


共 (3) 个答案

  1. # 1 楼答案

    使用api中的CreateVolumeRequest对象创建请求 并在返回的CreateVolumeResponce对象中查看结果 按照指示here

  2. # 2 楼答案

    您应该能够使用createVolume来创建项。它看起来返回一个CreateVolumeResult,其中有一个Volume对象

    然后,您将获取从createVolume调用返回的Volume,并使用匹配的AttachVolumeRequest获取attachVolume

    这一切都是在您创建一个AWSAmazonEC2Client对象之后完成的:documentation is all pulled from here.

    代码的工作流程可能如下所示(注意:使用了伪代码,可能还有一些代码需要挂接,但工作流程应该如下所示)

    AWSCredentials credentials = new AWSCredentials();
    AmazonEC2Client client = new AmazonEC2Client(credentials);
    CreateVolumeResult request = new  CreateVolumeRequest(java.lang.Integer size,
                           java.lang.String availabilityZone);
    CreateVolumeResponse volumeResponse = client.createVolume(request);
    AttachVolumeRequest attachRequest = new AttachVolumeRequest(volumeResponse.getVolume().getVolumeId(),  java.lang.String instanceId, java.lang.String device);
    client.attachVolume(attachRequest);
    
  3. # 3 楼答案

    请参考以下代码以使用java API创建EBS卷

    public void createVolume(String instanceId){
        System.out.println("Creating the volume begins...");
        CreateVolumeRequest  creq = new CreateVolumeRequest(50, "us-west-2a");
        CreateVolumeResult cres =  ec2.createVolume(creq);
    
         // Create the list of tags we want to create
        System.out.println("Setting the tags to the volume...");
        ArrayList<Tag> instanceTags = new ArrayList<Tag>();
        instanceTags.add(new Tag("Name","Sachin"));
        CreateTagsRequest createTagsRequest = new CreateTagsRequest().withTags(instanceTags).withResources(cres.getVolume().getVolumeId());
        ec2.createTags(createTagsRequest);
        System.out.println("Attaching the volume to the instance....");
        AttachVolumeRequest areq = new AttachVolumeRequest(cres.getVolume().getVolumeId(),instanceId, "/dev/sdh");
        AttachVolumeResult ares = ec2.attachVolume(areq);
        System.out.println("Creating the volume ends...");
    }