【问题标题】:AWS Lambda Task timed outAWS Lambda 任务超时
【发布时间】:2019-11-06 22:40:29
【问题描述】:

我创建了一个函数并向用户发送邮件但超时

05:48:54
END RequestId: 3508fc6c-29cb-442b-95dd-c963018ca5f3

05:48:54
REPORT RequestId: 3508fc6c-29cb-442b-95dd-c963018ca5f3  Duration: 900083.68 ms  Billed Duration: 900000 ms Memory Size: 256 MB  Max Memory Used: 43 MB

05:48:54
2019-06-25T05:48:54.532Z 3508fc6c-29cb-442b-95dd-c963018ca5f3 Task timed out after 900.08 seconds

我已将 TimeoutInfo 设置为 15 分钟。

【问题讨论】:

  • 您的任务需要超过 15 分钟。
  • 任务是什么?与 RDS 交互?
  • 您将需要添加额外的调试信息(例如print 语句)来确定您的函数需要这么长时间。如果函数需要 15 分钟以上的时间来执行,那么 AWS Lambda 可能不是运行它的好选择。

标签: amazon-web-services aws-lambda


【解决方案1】:

另一个潜在问题可能是您有一个活动连接,因此 aws lambda 在连接终止之前没有响应。

callbackWaitsForEmptyEventLoop – 设置为 false 以发送响应 回调执行时立即执行,而不是等待 Node.js 事件循环为空。如果这是错误的,任何未完成的 事件在下一次调用期间继续运行。

如果是这种情况,你可以设置callbackWaitsForEmptyEventLoop = false立即做出回调响应

context.callbackWaitsForEmptyEventLoop = false;

Official doc

【讨论】:

    【解决方案2】:

    检查配置文件中设置的超时时间是多少 还要检查 VPC!

    “给定事件源的错误处理取决于调用 Lambda 的方式。Amazon CloudWatch Events 配置为异步调用 Lambda 函数。”

    “异步调用 – 异步事件在用于调用 Lambda 函数之前先排队。如果 AWS Lambda 无法完全处理事件,它将自动重试两次调用,重试之间会有延迟。”

    所以在这种情况下应该重试。不确定您的 lambda 函数出了什么问题,只需删除并重新创建即可!

    【讨论】:

    • 配置文件?它在哪里
    • 检查超时
    • 超时为 15 分钟
    • 基本设置,超时 15 分钟和内存 256 MB
    • 当我发送演示邮件时使用此配置,然后它正在工作,并且使用 clode watch 事件它是超时的原因
    猜你喜欢
    • 2017-09-20
    • 2021-10-17
    • 2019-06-02
    • 1970-01-01
    • 2018-05-15
    • 2018-08-08
    • 2020-11-06
    • 2019-01-28
    • 1970-01-01
    相关资源
    最近更新 更多