谷歌云从镜像创建虚拟机



我在谷歌云上的虚拟机有问题。我尝试在java中启动虚拟机,但我不知道如何从映像启动虚拟机。我的意思是我如何设置源图像。我的代码是:

    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());

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

看看这些链接实例,在API中启动一个实例,并从一个图像和实例中启动一个实例。在最后一个链接中,您可以看到可以为磁盘提供的值[]. initializeparams .

最新更新