【问题标题】:Firebase Cloud Function Timeout When Creating Directory (generateThumbnail Example)创建目录时 Firebase 云函数超时(generateThumbnail 示例)
【发布时间】:2022-06-29 07:04:35
【问题描述】:

我在Firebase Github repo 中有一个(非常轻微的)修改版 generateThumbnail Firebase 云函数。该函数在某一时刻工作正常,现在每次调用它都会超时。我没有对函数或存储桶的规则进行任何更改。这些规则是检查身份验证的默认规则。添加一些日志记录后,我可以看到它永远不会超过这一行:

await file.download({destination: tempLocalFile});

我正在测试的图像文件是 15.21KB PNG。该函数的超时发生在 ~60000 毫秒(默认)之后。日志中没有错误,只有超时。

关于它为什么突然开始超时的任何建议?或者如何进一步调试这个单一的调用?

  • 节点:14
  • Firebase 管理员:9.8.0
  • Firebase 功能:3.14.1

编辑

我已经部署了一个最小的可重现函数并且看到了相同的结果。

exports.newGenerateThumbnail = functions.storage.object().onFinalize(async (object) => {
  const filePath = object.name;
  const tempLocalFile = path.join(os.tmpdir(), filePath);
  const tempLocalDir = path.dirname(tempLocalFile);
  // Cloud Storage files.
  const bucket = admin.storage().bucket(object.bucket);
  const file = bucket.file(filePath);

  functions.logger.log('Creating Temp Directory');
  await mkdirp(tempLocalDir);
  functions.logger.log('Temp Directory Created');

  functions.logger.log('Downloading File');
  await file.download({ destination: tempLocalFile });
  functions.logger.log('File Downloaded');

  functions.logger.log('Removing File');
  fs.unlinkSync(tempLocalFile);
  functions.logger.log('File Deleted');

  return true;
});

日志显示了这一点

【问题讨论】:

  • 尝试使用promise
  • 使用 Promise 不会改变任何东西。
  • 嗨,正如你提到的I have a (very slightly) modified version of the generateThumbnail Firebase Cloud Function found in the Firebase Github repo,你能提供你修改过的代码吗,我试图在我的最后重现,但它似乎工作正常。
  • 更改的是路径/文件名。我将在今天晚些时候用最少的可重现代码更新我的问题。谢谢
  • 我用一个重现问题的最小示例更新了我的问题。

标签: firebase google-cloud-functions firebase-storage


【解决方案1】:

我尝试使用您的代码重现该问题,但它对我来说工作正常,没有任何超时,如 screenshot 所示。

我与您的版本进行了交叉检查,我使用的是 Node:16.6,Firebase:10.2.1,Firebase Functions:3.16

也可能是因为以前看到的版本,如stackoverflow thread所示。所以我建议你升级你的版本再试一次,它可能会帮助你解决问题。

【讨论】:

  • 花了一些时间跟进此事,但我将 firebase-admin 和 firebase-functions 都更新到了最新版本。还将我的节点引擎更新到 16。仍然看到相同的结果。
  • 我不确定您的情况可能是什么问题,建议您检查 IAM 权限,并尝试在其他存储桶上触发该功能。
【解决方案2】:

在尝试使用“mkdirp”创建文件夹来定位文件时,我遇到了同样的问题。有人修过这个吗

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2017-11-23
    • 2018-11-30
    • 2023-04-02
    • 2021-09-05
    • 2018-05-17
    • 2021-04-24
    相关资源
    最近更新 更多