Google云从图像创建vm

时间:2014-07-23 21:38:34

标签: google-compute-engine

我在Google云上遇到了我的虚拟机问题。 我尝试在java中启动vm,但我不知道如何从图像中启动vm。我是说如何设置源图像。 我的代码是:

    Instance instance = new Instance();

    compute.machineTypes();
    String machine = "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/g1-small";
    instance.setMachineType(machine);

    String name = "newinstance";
    instance.setName(name);
    List<NetworkInterface> networkInterfaces = new ArrayList<NetworkInterface>();
    NetworkInterface iface = new NetworkInterface();
    iface.setName("eth0");

    iface.setNetwork("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default");
    networkInterfaces.add(iface);
    instance.setNetworkInterfaces(networkInterfaces);

    Disk disk = new Disk();
    disk.setSizeGb(10L);
    disk.setName("mydisk");


    Compute.Disks.Insert insDisk = compute.disks().insert(projectId, zoneName, disk);
    insDisk.execute();

    AttachedDisk diskToInsert = new AttachedDisk();
    diskToInsert.setBoot(true);
    diskToInsert.setType("PERSISTENT");
    diskToInsert.setMode("READ_WRITE");
    diskToInsert.setDeviceName("newinstancedisk");
    diskToInsert.setSource("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/" + disk.getName());

    List<AttachedDisk> listOfDisks = new ArrayList<AttachedDisk>();
    listOfDisks.add(diskToInsert);

    instance.setDisks(listOfDisks);

    Compute.Instances.Insert ins = compute.instances().insert(projectId, zoneName, instance);
    Operation op = ins.execute();
    System.out.println(op.toPrettyString());
    System.out.println(instance.toPrettyString());

1 个答案:

答案 0 :(得分:2)

您需要使用选项&#39; disks [] .initializeParams.sourceImage&#39;您可以在其中提供用于创建根磁盘的映像的完整URL。

请查看以下链接instancesstarting an instance in the APIstartin an instance from an image以及Instances。在最后一个链接中,您可以看到可以为disks [] .initializeParams。

提供的值