我的 lambda 在我的代码完成之前就结束了,我不知道为什么

问题描述 投票:0回答:1

我的 Lambda 函数在所有代码运行之前结束。我无法在此代码中检索转换后的文件 URL。为什么?

export const handler = async (event, context) => {
  // Geth the object from S3
  const bucket = "s3fileconverterinput";
  const key = event.Records[0].s3.object.key;

  var file = await getObject(bucket, key);
  console.log(file);
  var filePath = "/tmp/" + key;
  fs.writeFile(filePath, file, (err) => {
    if (err) {
    } else {
      console.log("File saved successfully!");
      convertapi.convert("pdf", { File: filePath }).then(function (result) {
        console.log("Converted file url: " + result.file.url);

      });
    }
  });
};
node.js amazon-s3
1个回答
0
投票

fs.writeFile
是一个异步函数。所以我认为这意味着处理程序结束而无需等待写入函数解析。

您可以:

  • 在此调用前面添加
    await
  • 使用
    fs.writeFileSync
    功能
© www.soinside.com 2019 - 2024. All rights reserved.