Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用GCE的API插入新实例_Java_Api_Google Compute Engine - Fatal编程技术网

Java 使用GCE的API插入新实例

Java 使用GCE的API插入新实例,java,api,google-compute-engine,Java,Api,Google Compute Engine,我编写了一个代码,使用JavaAPI在GCE中创建实例 但是这个代码不起作用,我得到以下错误 403 Forbidden { "code" : 403, "errors" : [ { "domain" : "global", "message" : "Insufficient Permission", "reason" : "insufficientPermissions" } ], "message" : "Insufficient Permission

我编写了一个代码,使用JavaAPI在GCE中创建实例 但是这个代码不起作用,我得到以下错误

403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Insufficient Permission",
    "reason" : "insufficientPermissions"
  } ],
  "message" : "Insufficient Permission"
}
我的代码发布在下面。它有任何错误或需要任何库来导入吗?请帮助我 我导入的库是

import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.util.store.DataStoreFactory;
import com.google.api.client.util.store.FileDataStoreFactory;
import com.google.api.services.compute.Compute;
import com.google.api.services.compute.ComputeScopes;
import com.google.api.services.compute.model.Instance;
import com.google.api.services.compute.model.InstanceList;
import com.google.api.services.compute.model.NetworkInterface;
import com.google.api.services.compute.model.Operation;
import com.google.api.services.compute.model.Zone;
import com.google.api.services.compute.model.ZoneList;



  private static void createInstance(String projectId, JsonFactory jsonFactory,Compute compute) throws IOException {
        Instance instance = new Instance();
        instance.setFactory(jsonFactory);

        // Select a machine type.
        String machine = "https://www.googleapis.com/compute/v1/projects/hindproj/global/machineTypes/n1-standard-1";
        instance.setMachineType(machine);

        // Get a name from the user.
        String name = "v1";
        instance.setName(name);
        // Use the default network.  Could select here if needed.
        List<NetworkInterface> networkInterfaces = new ArrayList<NetworkInterface>();
        NetworkInterface iface = new NetworkInterface();
        iface.setFactory(jsonFactory);
        iface.setName("eth0");
        iface.setNetwork("https://www.googleapis.com/compute/v1/projects/hindproj/global/networks/default");//( COMPUTE_API + "/projects/" + projectId + "/networks/default");
        networkInterfaces.add(iface);
        instance.setNetworkInterfaces(networkInterfaces);

        // Select a zone.
        String zone = "https://www.googleapis.com/compute/v1/projects/hindproj/zones/us-central1-b";
        instance.setZone(zone);
        Compute.Instances.Insert ins = compute.instances().insert(projectId,zoneName, instance);

        // Finally, let's run it.
        Operation op = ins.execute();
        System.out.println(op.toPrettyString());
        System.out.println(instance.toPrettyString());
      }
import com.google.api.client.auth.oauth2.Credential;
导入com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
导入com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
导入com.google.api.client.googleapis.auth.oauth2.googleaauthorizationcodeflow;
导入com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
导入com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
导入com.google.api.client.http.HttpTransport;
导入com.google.api.client.json.JsonFactory;
导入com.google.api.client.json.jackson2.JacksonFactory;
导入com.google.api.client.util.store.DataStoreFactory;
导入com.google.api.client.util.store.FileDataStoreFactory;
导入com.google.api.services.compute.compute;
导入com.google.api.services.compute.ComputeScopes;
导入com.google.api.services.compute.model.Instance;
导入com.google.api.services.compute.model.InstanceList;
导入com.google.api.services.compute.model.NetworkInterface;
导入com.google.api.services.compute.model.Operation;
导入com.google.api.services.compute.model.Zone;
导入com.google.api.services.compute.model.ZoneList;
私有静态void createInstance(字符串projectId、JsonFactory、JsonFactory、Compute Compute)引发IOException{
实例实例=新实例();
setFactory(jsonFactory);
//选择一种机器类型。
字符串机器=”https://www.googleapis.com/compute/v1/projects/hindproj/global/machineTypes/n1-standard-1";
setMachineType(machine);
//从用户处获取名称。
String name=“v1”;
instance.setName(name);
//使用默认网络。如果需要,可以选择此处。
List networkInterfaces=new ArrayList();
NetworkInterface iface=新的NetworkInterface();
iface.setFactory(jsonFactory);
iface.setName(“eth0”);
iface.setNetwork(“https://www.googleapis.com/compute/v1/projects/hindproj/global/networks/default/(COMPUTE_API+“/projects/”+projectd+“/networks/default”);
网络接口。添加(iface);
实例.setNetworkInterfaces(networkInterfaces);
//选择一个区域。
字符串区域=”https://www.googleapis.com/compute/v1/projects/hindproj/zones/us-central1-b";
实例.setZone(zone);
Compute.Instances.Insert ins=Compute.Instances().Insert(projectId,zoneName,instance);
//最后,让我们运行它。
操作op=ins.execute();
System.out.println(op.toPrettyString());
System.out.println(instance.toPrettyString());
}

机器类型资源是分区的,而不是全局的。试一试它是否缺少启动磁盘?您是否使用了正确的ComputeScopes(ComputeScopes.COMPUTE而不是ComputeScopes.COMPUTE\u READONLY)呢?我们看不到创建计算实例的代码,但是设置只读范围可能会产生与您相同的错误。