这是我的请求正文:
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:">'
如何解决此错误?
答案 0 :(得分:0)
如果我们查看在here找到的Compute Engine实例上设置元数据的文档,我们会看到结构为:
"items": [
{
"key": string,
"value": string
}
],
如果将其与您的帖子中描述的结构进行比较,我们将看到您已将keys
而不是key
用作字段名称。这很容易成为问题。要解决此问题,请将keys
更改为key
。