Firebase Function创建Google Cloud Task报错Task.payload_type未设置
错误原因
你构造的Google Cloud Tasks创建任务请求参数格式不符合SDK要求:createTask方法的入参中,任务配置必须放在固定的task字段下。你当前用自定义的task-xxx动态字段存储任务配置,导致SDK无法识别传入的任务payload,因此抛出Task.payload_type is not set错误。
修正方案
基础修正(无自定义任务ID)
直接替换你构造taskRequest的代码即可:
// 替换原来的这两行 // const taskRequest = {parent: queuePath}; // taskRequest["task-" + scheduleSendMillis.toString()] = task; // 改为以下写法 const taskRequest = { parent: queuePath, task: task };
如需自定义任务ID(避免重复提交)
如果你原本是想通过动态key设置自定义任务ID去重,需要将ID放在task.name字段中,格式为队列路径/tasks/自定义ID:
const task = { // 新增name字段设置自定义任务ID name: `${queuePath}/tasks/task-${scheduleSendMillis.toString()}`, httpRequest: { httpMethod: "POST", url: url, body: Buffer.from("Hello there").toString("base64"), headers: { "Content-Type": "text/plain", }, }, scheduleTime: { seconds: scheduleSendSeconds, }, }; const taskRequest = { parent: queuePath, task: task };
内容的提问来源于stack exchange,提问作者Owl Surojit
相关产品推荐
相关产品推荐

