Задача вставки 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'}
Теперь это сработало.