1

我正在使用 apiclient.discovery.build 从 Google 拉取队列中租用任务。它工作正常。但是当我尝试在这个队列中插入任务时,我总是得到同样的错误:

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 返回“后端错误">

身份验证是正确的,因为我可以租用/删除任务。它可能是有效负载中缺少的字段?

4

1 回答 1

1

嗯..我用租用任务的确切有效负载更改了有效负载..除了某些字段(例如,ID 或租赁时间),并在'queueName'中的项目名称中添加了'~s'。

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

现在它起作用了。

于 2016-08-22T18:07:44.557 回答