使用 NodeJS 的 AWS Lambda 函数中的 AWS-SDK 加载错误

AWS-SDK Load Error in AWS Lambda function using NodeJS

我正在使用 nodejs 创建新的 lambda 函数。 而且这个 lambda 函数在没有 aws-lambda 的情况下也能正常工作。 但是当我需要 'aws-sdk' 包时,它发生错误并停止 运行。 错误是 他们不需要 'aws-sdk' 包。 但是 aws-sdk 已经在 node_module 文件夹中。

我要你解决这个问题。 非常感谢。

这个问题很有趣也很奇怪。

我也遇到过这个问题。 起初,当我遇到这个问题时,我很担心,看起来真的很奇怪。 我花了好几天的时间才解决这个问题。

原因真的很简单。 由于 lambda 函数超时,您遇到了该问题。

默认超时为 3 秒,3 秒对于加载 aws-sdk 包来说太短了。

加载aws-sdk包,至少需要6秒。 所以我建议你在使用aws-sdk功能的时候把超时时间设置在6秒以上。

如果此函数每天运行数千次,持续 5 秒左右,那么它的成本可能会很高。如果您的 lambda 在完成执行之前正在等待另一个任务完成,那么最好考虑一个消息系统,例如社交网络

我有一个需要 aws-sdk 的 lambda 函数,然后更新 DynamoDB,并在该请求完成后调用另一个 lambda 函数,我从未见过所有这些都超过 1 秒。如果您正在调用另一个 lambda 函数,请确保包含 InvocationType: 'Event',以便原始 lambda 立即完成,而不是等待第二个 lambda 函数完成。

如果仍然不起作用,那么是时候按照所述尝试 SNS here