我在谷歌云上的虚拟机有问题。我尝试在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 .