Google Cloud Compute Python API不接受我的启动脚本

时间:2019-12-07 22:57:11

标签: google-cloud-platform

这是我的请求正文:

server = {
'name': name_gen.haikunate(),
'machineType': f"zones/{zone}/machineTypes/n1-standard-1",
'disks': [
    {
        'boot': True,
        'autoDelete': True,
        'initializeParams': {
            'sourceImage': 'projects/ubuntu-os-cloud/global/images/ubuntu-1604-xenial-v20191204'
        }
    }
],
'networkInterfaces': [
    {
        'network': '/global/networks/default',
        'accessConfigs': [
            {'type': 'ONE_TO_ONE_NAT', 'name': 'external nat'}
        ]
    }
],
'metadata': {
    'items': [
        {
            'keys': 'startup-script',
            'value': startup_script
        }
    ]
}

将此请求正文与计算对象一起使用来创建虚拟机时,它给了我这个错误:

googleapiclient.errors.HttpError:
<HttpError 400 when requesting https://compute.googleapis.com/compute/v1/projects/focal-maker-240918/zones/us-east4-c/instances?alt=json
returned "Invalid value for field 'resource.metadata': 
'{
   "item": [
   {
     "value": "#!/bin/bash\n\napt-get update\n\nsleep 15\n\nclear\n\napt-get install squ...'. Metadata invalid keys:">'

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

如果我们查看在here找到的Compute Engine实例上设置元数据的文档,我们会看到结构为:

"items": [
  {
    "key": string,
    "value": string
  }
],

如果将其与您的帖子中描述的结构进行比较,我们将看到您已将keys而不是key用作字段名称。这很容易成为问题。要解决此问题,请将keys更改为key