【问题标题】:How can I increase the execution time of aws lambda function more than 5 min?如何将 aws lambda 函数的执行时间增加 5 分钟以上?
【发布时间】:2017-09-07 17:44:12
【问题描述】:

我有 lambda 函数,运行时间超过 5 分钟。如何将 lambda 函数的执行时间增加 5 分钟以上,这样我的程序才能继续运行?

END 请求 ID:5b676871-1eef-1xex-bxxa-47xxxxad8d63

最后一行在 cloudwatch 中显示。它会自动结束请求。

【问题讨论】:

  • 你在说什么 lambda 函数?能否请您发布您的代码?
  • 5min 是最大执行时间。
  • 您能否提供有关您的用例的更多信息?例如:为什么要超过 5 分钟?如果您的代码需要更长的时间,为什么选择将其作为 Lambda 函数运行?任务在做什么——它可以分解成多个可以并行运行的独立任务吗?

标签: java amazon-s3 aws-lambda


【解决方案1】:

您不能将运行时间增加到超过 15 分钟。

AWS Lambda limit page 声明Function timeout900 seconds (15 minutes)。如果您需要超过 15 分钟的执行时间,则必须查看其他服务。您可以看看AWS Batch 是否适合您的需求。

更新:限制已从 5 分钟更改为 15 分钟。

【讨论】:

  • 同意,+阶跃函数
  • 这太令人失望了!我认为将我们限制在 5 分钟内没有任何好处。有谁知道为什么存在这个约束?
  • 想知道吗?每次您需要运行具有未定义范围/长度的作业时,您都会冒着中途放弃作业的风险,这主要是破坏交易。启动批处理作业很容易需要 1 到 5 分钟才能触发,也不理想。 Lambda 上的微型作业中的作业使记录作业状态/成功的日志更加复杂。感觉 5 分钟的限制真的是故意屏蔽了很多用例。
  • @LVBen,请记住 lambda 可以在任何可用的机器上运行。 AWS 不希望 lambdas 妨碍重新启动机器。这可能是 lambda 的生命周期有限的原因。
【解决方案2】:
【解决方案3】:

当然可以。我的解决方案是:

  1. 在您的 lambda 函数中跟踪时间流逝
  2. 当即将超过限制时,向 SNS 主题发送通知,然后退出。
  3. 将 SNS 主题设置为您的 lambda 函数的触发器。

请记住 lambda 的最初目的是运行短任务,因此最好让 lambda 函数在 15 分钟内运行。

【讨论】:

    【解决方案4】:

    你不能。如果您需要更长的时间,则需要启动 EC2 服务器。

    【讨论】:

      【解决方案5】:

      您可以将 AWS lambda 函数的 Timeout 属性设置为最长 15 分钟。

      https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html

      【讨论】:

        猜你喜欢
        • 2021-12-25
        • 2021-06-13
        • 2018-12-14
        • 1970-01-01
        • 2014-06-13
        • 1970-01-01
        • 2020-07-30
        • 2019-04-01
        • 2013-11-16
        相关资源
        最近更新 更多