Jim*_*ane 2 firebase google-cloud-functions
我在firebase上的一项云功能退出,错误代码为16。
我试图谷歌,找出什么代码,但根本没有运气。
Error: Process exited with code 16
at process.on.code (/srv/node_modules/@google-cloud/functions-framework/build/src/invoker.js:393:29)
at process.emit (events.js:189:13)
at process.EventEmitter.emit (domain.js:441:20)
at process.exit (internal/process/per_thread.js:168:15)
at logAndSendError (/srv/node_modules/@google-cloud/functions-framework/build/src/invoker.js:184:9)
at process.on.err (/srv/node_modules/@google-cloud/functions-framework/build/src/invoker.js:390:13)
at process.emit (events.js:189:13)
at process.EventEmitter.emit (domain.js:441:20)
at emitPromiseRejectionWarnings (internal/process/promises.js:119:20)
at process._tickCallback (internal/process/next_tick.js:69:34)
Run Code Online (Sandbox Code Playgroud)
在哪里可以找到报告的错误代码,以便我理解为什么我的函数退出?
可能的原因是云函数未正确终止。
firebase 文档是这样说的:
通过返回 JavaScript Promise 来解析执行异步处理的函数(也称为“后台函数”)。
res.redirect()使用、res.send()或
终止 HTTP 函数res.end()。
return使用;终止同步函数 陈述。
简而言之,请注意浮动承诺res和/或对or的多次调用response。
我还看到这种Process exited with code 16情况同时发生:
Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.
at GoogleAuth.getApplicationDefaultAsync (/srv/functions/node_modules/google-auth-library/build/src/auth/googleauth.js:161:19)
at process._tickCallback (internal/process/next_tick.js:68:7)
Run Code Online (Sandbox Code Playgroud)
显然,经过调查,该错误表示类似:Headers already sent。
我在代码中的某处response.send()带有标头,然后,我发送了另一个响应。
如果Firebase团队可以详细说明这些问题并提供一些文档而不是蒙住我们(根据我的理解),那将很棒
函数框架的代码实际上在GoogleCloudPlatform/functions-framework-nodejs存储库中是公开的(虽然没有在任何地方做广告)。
特别是您可以在那里看到killInstance使用的情况,这是触发退出代码 16 的一个:
const killInstance = process.exit.bind(process, 16);
这些案例是(在撰写本文时):
| 归档时间: |
|
| 查看次数: |
671 次 |
| 最近记录: |