2016-02-17 2 views
1

пытается запустить экземпляр в Google Cloud с помощью google-api-client 0.9.2 Так что я бегу:ошибка вставки экземпляра с gcloud апи жемчужину

compute.insert_instance(project, zone, instance_opts) 

Где instance_opts является:

--- 
machineType: https://www.googleapis.com/compute/v1/projects/openshift-gce-devel/zones/us-central1-a/machineTypes/n1-standard-1 
disks: 
- initializeParams: 
    sourceImage: https://www.googleapis.com/compute/v1/projects/myproject/global/images/myimage 
    type: SCRATCH 
networkInterfaces: 
- network: projects/myproject/global/networks/default 
    accessConfigs: 
    - name: external 
name: mytest 

Но я 'm получение ошибки с сервера:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Required field 'resource.name' not specified" 
    } 
    ], 
    "code": 400, 
    "message": "Required field 'resource.name' not specified" 
} 
} 

Я получаю ИНГ точно такой же вопрос, даже если я только instance_opts:

{"name": "mytest"} 

Я получаю сообщение об ошибке для неизвестного поля «ресурс» или «resource.name», если я пытаюсь установить их в instance_opts. Установка имени диска также не помогает. Так что мне интересно, что это за проблема.

ответ

1

Да, может быть, это глупо, но я не мог хорошо это понять, что на самом деле мне нужно создать объект Instance и использовать его для вызова.

io = Google::Apis::ComputeV1::Instance.new(instance_opts) 
compute.insert_instance(project, zone, io) 

Но с еще одной деталью. Хеш должен быть :machine_type вместо "machineType". Это то же самое для всех хэш-ключей.

Смежные вопросы