【问题标题】:Google cloud function crashing after fs.writeFile谷歌云功能在 fs.writeFile 后崩溃
【发布时间】:2019-02-11 23:01:56
【问题描述】:

我有一个奇怪的错误。我正在使用 firebase 的云功能进行一些数据处理。在函数中,我需要 (a) 将 CSV 写入磁盘上的 tmp/ 文件夹,(b) 将此文件上传到谷歌云存储。

我正在使用 fs.writeFile 写入磁盘。这工作正常——数据被正确写入 tmp 文件夹。但是,如果没有立即解决,整个函数就会崩溃。因此,如果函数中有下一步(例如等待上传完成谷歌云存储),函数就会崩溃。

我已经能够使用以下简单版本复制错误:

async.waterfall([
   function (callback) {
       fs.writeFile("tmp/testfile.txt", "hello world", function(err) {
           callback(null);
       });
   },
   function (callback) {
       setTimeout(function(){
           callback(null)
       }, 10000);
   }
], function(err){console.log("done!"})

任何关于可能出错的想法都将非常感激!

【问题讨论】:

  • “整个函数崩溃”是什么意思?如果您在日志中收到错误消息,请编辑您的问题以更具体地了解您所观察到的内容。
  • 在控制台中,我收到以下错误:执行耗时 1687 毫秒,完成状态:'crash' 我还应该提到我目前正在使用 firebase 的 functons:shell 命令测试该功能,我也有尝试使用 try catch 来捕获此错误,但这不起作用:(
  • 您应该使用 os.tmpdir() 来获取您的函数可写的目录:nodejs.org/api/os.html#os_os_tmpdir
  • 完全成功!你摇滚,道格!

标签: node.js firebase google-cloud-platform google-cloud-functions fs


【解决方案1】:

对于后代,问题在于我将 tmp 文件夹设置为简单的“tmp”。事实证明,您需要使用 os.tmpdir() 找到临时文件夹。一旦你这样做,它就可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 2019-05-14
    • 2020-09-03
    • 2021-10-12
    • 2019-12-03
    • 2018-12-11
    相关资源
    最近更新 更多