вставить новый экземпляр, используя API GCE

1

Я пишу код для создания экземпляра в GCE с помощью java API, но этот код не работает, я получаю следующую ошибку

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 run it.
        Operation op = ins.execute();
        System.out.println(op.toPrettyString());
        System.out.println(instance.toPrettyString());
      }
Теги:
google-compute-engine

1 ответ

0

Ресурсы типа машины являются зональными, а не глобальными. Попробуйте https://www.googleapis.com/compute/v1/projects/hindproj/zones/us-central1-b/machineTypes/n1-standard-1.

  • 0
    я пробую и до сих пор выдает ту же ошибку :(

Ещё вопросы

Сообщество Overcoder
Наверх
Меню