我正在使用apiclient.discovery.build从Google Pull Queue租用任务..它工作正常..但是当我尝试在此队列中插入任务时,我总是得到相同的错误:
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(resp,content,uri = self.uri) googleapiclient.errors.HttpError:https://www.googleapis.com/taskqueue/v1beta2/projects/project_test/taskqueues/pullqq/tasks ?alt = json 返回"后端错误">
验证是正确的,因为我可以租用/删除任务..它可能是有效负载中的某个缺少的字段?
答案 0 :(得分:1)
嗯..我使用来自租用任务的确切有效负载更改了有效负载..除了某些字段(例如,ID或租用时间),并在'queueName'中将'~s'添加到项目名称。
resp = {u'kind': u'taskqueues#task', u'queueName': u'projects/s~project_name/taskqueues/pullqq', u'payloadBase64': u'c29tZSB0ZXN0'}
现在它奏效了。