我在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());
答案 0 :(得分:2)
您需要使用选项&#39; disks [] .initializeParams.sourceImage&#39;您可以在其中提供用于创建根磁盘的映像的完整URL。
请查看以下链接instances,starting an instance in the API和startin an instance from an image以及Instances。在最后一个链接中,您可以看到可以为disks [] .initializeParams。
提供的值