Задача вставки Google TaskQueue (pull) по API

Я использую apiclient.discovery.build для аренды задач из очереди Google Pull. Это работает нормально.. Но когда я пытаюсь вставить задачи в эту очередь, я всегда получаю ту же ошибку:

from apiclient.discovery import build
build = build('taskqueue', 'v1beta2', credentials=GoogleCredentials.get_application_default())

# Works
resp = build.tasks().lease(project=project,taskqueue=name,leaseSecs=lease_time,numTasks=num_tasks).execute()

# Error
payload = {'payloadBase64': 'c29tZSB0ZXN0'}
result = build.tasks().insert(project=project,taskqueue=name,body=payload)

вызвать HttpError(соответственно, content, uri=self.uri) googleapiclient.errors.HttpError: https://www.googleapis.com/taskqueue/v1beta2/projects/project_test/taskqueues/pullqq/tasks?alt=json return "Ошибка внутреннего интерфейса ">

Аутентификация правильная, потому что я могу арендовать / удалять задачи. Возможно, в полезной нагрузке отсутствует поле?

1 ответ

Решение

Хорошо... Я изменил полезную нагрузку с точной полезной нагрузкой из арендованных задач.. за исключением некоторых полей (например, ID или времени аренды) и добавил '~s' к имени проекта в 'queueName'.

resp = {u'kind': u'taskqueues#task', u'queueName': u'projects/s~project_name/taskqueues/pullqq', u'payloadBase64': u'c29tZSB0ZXN0'}

Теперь это сработало.

Другие вопросы по тегам