Я пишу код для создания экземпляра в 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());
}
Ресурсы типа машины являются зональными, а не глобальными. Попробуйте https://www.googleapis.com/compute/v1/projects/hindproj/zones/us-central1-b/machineTypes/n1-standard-1.