【问题标题】:Index handler is undefined or not exported索引处理程序未定义或未导出
【发布时间】:2020-06-25 04:48:23
【问题描述】:

我有一个运行良好的 lambda 函数,但我想导入一个包,所以我用 index.js 创建了一个目录并安装了我的 npm 包。

然后创建此文件夹的 zip 并使用

上传

aws lambda update-function-code --function-name smrtfac-test --zip-file fileb://lambda.zip

但是现在我收到了这个错误

index.handler is undefined or not exported

这可能是什么原因? 我的index.jsnode_modules 在同一个目录中。

【问题讨论】:

    标签: aws-lambda aws-cli


    【解决方案1】:

    这通常发生在您压缩目录时,而不是压缩目录的内容。当您打开 zip 文件浏览内容时,index.js 文件应位于 zip 文件的根目录中,而不是文件夹中。

    【讨论】:

    • 我用来解决问题的命令(从目录中运行):zip -r -D lambda.zip *
    • 这对我有用,但是我的 bin 目录中有很多符号链接都指向图像魔法,并且没有 -y 标志,它最终对于 lambda 来说太大了。所以是的......包括 -y 标志。
    • 由于 zip 在 Windows 中不起作用,我使用此答案中提到的命令 stackoverflow.com/a/64475079/8810941 来压缩和解压缩内容。当然,它有一些限制,但对于压缩 lambda 函数来说已经绰绰有余了。
    【解决方案2】:

    如果您的 index.js 不直接位于根文件夹下,您也可以如下更改 Handler 部分

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      这是因为您可能在目录中提交项目。您只需直接压缩所有文件,而不是将它们压缩到目录中。索引文件需要位于根目录才能被 lambda 读取和访问。

      【讨论】:

        【解决方案5】:

        如果您在 CDK 中使用 typescript,请确保您没有在主函数文件中导出另一个函数。

        【讨论】:

          猜你喜欢
          • 2021-10-22
          • 1970-01-01
          • 2023-02-17
          • 2020-03-11
          • 1970-01-01
          • 1970-01-01
          • 2021-03-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多