Я пытаюсь создать виртуальную машину с помощью клиента Python.Я звоню
import googleapiclient.discovery
compute = googleapiclient.discovery.build('compute', 'v1')
compute.instances().insert(
project='my-project',
zone='us-central1-c',
body=config).execute()
(конфиг - строка json, доступно здесь )
, а ответ -
<HttpError 400 when requesting https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/instances?alt=json
returned "Required field 'resource' not specified">
Из этого сообщения на форуме и этого вопроса об обмене стека , похоже, проблема в заголовках API REST.Однако, насколько я знаю, заголовки не выставляются клиенту Python.
Это ошибка или есть что-то еще, что я могу делать неправильно?
РЕДАКТИРОВАТЬ
После ошибки, возвращающейся к googleapiclient.http.HttpRequest
, похоже, что объект HttpRequest
, сгенерированный build()
, имеет заголовки
{ 'accept': 'application/json',
'accept-encoding': 'gzip, deflate',
'content-length': '2299',
'content-type': 'application/json',
'user-agent': 'google-api-python-client/1.7.7 (gzip)' }
Я попытался добавить 'resource': 'none'
к заголовкам и получилтот же ответ.
Посмотрев на это некоторое время, я подозреваю, что REST API ожидает, что будет указан ресурс Compute Engine.Однако поиск слова «resource» в официальных документах дает 546 результатов.
EDIT2
Created GitHub Issue .