Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 在Google计算引擎实例磁盘上设置标签_Google Cloud Platform - Fatal编程技术网

Google cloud platform 在Google计算引擎实例磁盘上设置标签

Google cloud platform 在Google计算引擎实例磁盘上设置标签,google-cloud-platform,Google Cloud Platform,我将尝试在Google计算引擎实例上设置磁盘标签。基本上这里记录的是: 不幸的是,使用谷歌提供的简单代码: require_once __DIR__ . '/vendor/autoload.php'; $client = new Google_Client(); $client->setApplicationName('Google-ComputeSample/0.1'); $client->useApplicationDefaultCredentials(); $client-&

我将尝试在Google计算引擎实例上设置磁盘标签。基本上这里记录的是:

不幸的是,使用谷歌提供的简单代码:

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 = 'my-project';
$zone = 'my-zone';
$resource = 'my-resource';  // here i set the disk name
$requestBody = new Google_Service_Compute_ZoneSetLabelsRequest();
$response = $service->disks->setLabels($project, $zone, $resource, $requestBody);
echo '<pre>', var_export($response, true), '</pre>', "\n";
?>

但都不管用。并且没有任何变化(总是500错误,但有相同的异常)。我做错了什么?

您收到的错误响应表明labelFingerprint错误或未设置。请求正文应同时包含标签和labelFingerprint,看起来您只是在设置前者:

您链接的文档解释了什么是lableFingerprint:

此资源的上一组标签的指纹,用于检测冲突。指纹最初由计算引擎生成,并在每次修改或更新标签的请求后更改。为了更新或更改标签,必须始终提供最新的指纹哈希。向资源发出get()请求以获取最新指纹

base64编码的字符串


您收到的错误响应表明labelFingerprint错误或未设置。请求正文应同时包含标签和labelFingerprint,看起来您只是在设置前者:

您链接的文档解释了什么是lableFingerprint:

此资源的上一组标签的指纹,用于检测冲突。指纹最初由计算引擎生成,并在每次修改或更新标签的请求后更改。为了更新或更改标签,必须始终提供最新的指纹哈希。向资源发出get()请求以获取最新指纹

base64编码的字符串


谢谢你的反馈。你帮我找到了解决问题的正确方向。太好了,很高兴我能帮上忙。如果你愿意,你可以接受答案!当然对不起,我以前忘了做这件事!谢谢你的反馈。你帮我找到了解决问题的正确方向。太好了,很高兴我能帮上忙。如果你愿意,你可以接受答案!当然对不起,我以前忘了做这件事!
$requestBody->setLabels(array("mylabel"=>"1"));
$requestBody->setLabels(serialize(array("mylabel"=>"1")));
$requestBody->setLabels('"mylabel":"1"');
$requestBody->setLabels('{"mylabel":"1"}');
{
  "labels": {
    string: string,
    ...
  },
  "labelFingerprint": string
}