Хорошо, у вас есть 3 способа добиться этого, они хорошо документированы в здесь , я перечислю их от самого простого до сложного:
A.- Google Cloud Console.
B.- Инструмент CLI Google Cloud SDK "gcloud".
C.- Вызовы API Google Cloud HTTP.
Разрешение, которое потребуется учетной записи для выполнения команды Stop /начало экземпляра будет:
compute.instances.stop
compute.instances.start
для сброса:
compute.instances.reset
Роль с такими правами - "compute.instanceAdmin", однако вы всегда можете создать роль клиента с помощьюжелаемые разрешения.
A.- Google Cloud Console
Это наиболее удобный способ сделать это, поскольку он использует графический интерфейс.Перейдите в Cloud Console, на ваших инстансах Compute Engine .Если вы не видите свои экземпляры в списке, убедитесь, что вы выбрали правильный проект.
Нажмите на экземпляры, которые вы хотите остановить / запустить, и нажмите на кнопки выше в зависимости от того, что вы хотите сделать.
B.- Инструмент CLI Google Cloud SDK "gcloud"
Установите инструмент CLI "gcloud", аутентифицируйте в нем, используя:
gcloud auth login [ACCOUNT]
Тогда вы сможете использовать команды для Стоп / Старт / Сброс Экземпляры
gcloud compute instances stop example-instance-1 example-instance-2
gcloud compute instances start example-instance
gcloud compute instances reset example-instance
C.- Вызовы HTTP API Google Cloud
Это метод, который вы в настоящее время пытаетесь использовать, вам нужно будет сделать HTTP-запрос к API Google Cloud: Старт , Стоп , Сброс .
Вам нужно будет добавить свой «токен доступа» в поле «аутентификация» в заголовке запроса.используя «Авторизация: токен на предъявителя».Подробнее об этом здесь .
Как получить «токен доступа» может отличаться в зависимости от языка, который вы используете, вот пример в javascript:
var {google} = require("googleapis");
// Load the service account key JSON file.
var serviceAccount = require("path/to/serviceAccountKey.json");
// Define the required scopes.
var scopes = [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/compute"
];
// Authenticate a JWT client with the service account.
var jwtClient = new google.auth.JWT(
serviceAccount.client_email,
null,
serviceAccount.private_key,
scopes
);
// Use the JWT client to generate an access token.
jwtClient.authorize(function(error, tokens) {
if (error) {
console.log("Error making request to generate access token:", error);
} else if (tokens.access_token === null) {
console.log("Provided service account does not have permission to generate access tokens");
} else {
var accessToken = tokens.access_token;
// here you have the token, you can use it on your API request.
}
});