我正在使用以下代码启动实例。该代码将按预期工作并启动实例。
但是,如果$service->instances->start
由于GCP结束错误而无法启动实例,我将不会收到任何通知。它将执行而不会引发任何异常。我已经通过尝试在一个区域中运行2个实例,其中每个实例具有8个以上的CPU来测试(免费帐户在一个区域中不能拥有8个以上的内核)。尽管实例从未启动,但在此脚本中我没有收到任何错误。
如何从一般的启动错误中恢复?我是否应该使用计时器在一分钟后检查一切是否按预期运行?有没有更强大的实例启动方式?
<?php
require_once __DIR__ . '/vendor/autoload.php';
$client = new Google_Client();
$client->setApplicationName('Google-ComputeSample/0.1');
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/cloud-platform');
$service = new Google_Service_Compute($client);
$project = 'project_id'; // TODO: Update placeholder value.
$zone = 'us-east1-b'; // TODO: Update placeholder value.
$instance = 'instance-1'; // TODO: Update placeholder value.
$response = $service->instances->start($project, $zone, $instance);
// TODO: Change code below to process the `response` object:
echo '<pre>', var_export($response, true), '</pre>', "\n";
另一方面,CLI等效命令gcloud compute instances start instance-1 --zone=us-east1-b
确实返回错误。还能在PHP中获得错误消息吗?
CLI中的错误消息:
Starting instance(s) instance-2...failed.
ERROR: (gcloud.compute.instances.start) Quota 'CPUS' exceeded. Limit: 8.0 in region us-east1.