【问题标题】:get error message from unsuccessful Google Compute Engine instance start从不成功的 Google Compute Engine 实例启动中获取错误消息
【发布时间】:2018-12-29 12:30:42
【问题描述】:

我正在使用下面的代码来启动一个实例。代码按预期工作并启动一个实例。

但是,如果$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.

【问题讨论】:

    标签: php google-cloud-platform google-compute-engine


    【解决方案1】:

    请检查response body的json标签以检索错误内容。如果您仍然看不到任何输出,您可以在“开发者工具”下提交问题here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2015-11-05
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      相关资源
      最近更新 更多