Мне нужно запустить экземпляр облака Google и остановить, если мой процесс закончен.
Так что я попробовал API-звонки от https://cloud.google.com/compute/docs/reference/rest/v1/instances/get
Создал API-ключ и идентификатор клиента oAuth для одного и того же и попытался в приложении почтальона для тестирования.
Используемый ключ API в заголовке Authorization : Bearer <api_key>
а также в URL как key=<api_key>
Но оба метода дают ошибку 401 login required
,
Затем я нашел API Explorer
https://developers.google.com/apis-explorer/
Там также я получил ту же ошибку.
Какую ошибку я делаю.
Мне нужно реализовать запуск и остановку экземпляра через код PHP, так как это фоновый процесс.
PHP curl ответ
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"}
],
"code": 401,
"message": "Invalid Credentials"}
}
Я думаю, что самый простой способ сделать это с помощью переменной env, так как клиентская библиотека google api php имеет удобный метод.
require_once __DIR__ . '/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');
$client = new Google_Client();
$client->setApplicationName('RandomNameYouNeedToInsert/0.1');
$client->addScope(array('https://www.googleapis.com/auth/compute'));
$client->useApplicationDefaultCredentials();
$service = new Google_Service_Compute($client);
// TODO: Update placeholder values.
project = 'my-project';
$zone = 'my-zone';
$instance = 'my-instance';
$response = $service->instances->start($project, $zone, $instance);
// TODO: Check if the response satisfies your request.
Других решений пока нет …