我正在使用 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)
raise HttpError(resp, content, uri=self.uri) googleapiclient.errors.HttpError: https://www.googleapis.com/taskqueue/v1beta2/projects/project_test/taskqueues/pullqq/tasks?alt=json returned "Backend Error">
身份验证是正确的,因为我可以租用/删除任务。负载中可能缺少某些字段?
最佳答案
好吧..我用租用任务中的确切有效负载更改了有效负载..除了某些字段(例如ID或租赁时间)并将“~s”添加到“queueName”中的项目名称中。
resp = {u'kind': u'taskqueues#task', u'queueName': u'projects/s~project_name/taskqueues/pullqq', u'payloadBase64': u'c29tZSB0ZXN0'}
现在它起作用了。
关于python - Google TaskQueue(拉)通过 API 插入任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080283/