【问题标题】:Why AWS lambda functions In a VPC sometimes timeout and sometimes work fine?为什么 AWS lambda 函数在 VPC 中有时会超时,有时工作正常?
【发布时间】:2018-07-17 05:09:28
【问题描述】:

我在 VPC 中有一些 lambda 函数,其中一些需要 Internet 才能工作,所以我添加了一个 NAT 实例 (t2.micro),问题是我有一些函数有时可以工作,有时会超时。例如,调用 FB API 的函数 80% 的时间工作和 20% 的超时。另一个功能是使用 boto3 创建一个 50% 的时间超时的现场实例,并且日志给了我。

2018-07-16T06:35:55.909Z 421f98dd-88c2-11e8-913a-63c8d6f276f3 任务在 100.10 秒后超时

每当我重新部署无服务器项目时,都会遇到这个问题。

我增加了超时限制和内存,但我有同样的问题我确定可以访问 Internet,但某些 lambda 函数超时。

你认为问题是什么? 谢谢

【问题讨论】:

  • 请编辑您的问题以提供比“功能不起作用”更多的详细信息。日志包含什么?您收到什么错误消息?相同的功能是否始终有效/无效,或者它们有时有效,有时无效?请提供更多详细信息!
  • 抱歉,我编辑了我的帖子,谢谢
  • 那么,您的问题是它达到了 Lambda 超时限制,对吗?您是否调查过函数中花费的时间是什么?例如,它是在调用外部服务并等待响应吗?或者它是在做大量的计算而耗费时间?如果您通过将超时时间提高到 5 分钟来进行实验,它们是否都正确完成?您是否需要这些函数来连接到 VPC,因为另一种方法是将它们连接到 VPC,然后他们可以在没有 NAT 实例的情况下直接访问 Internet。
  • 如果您将 Lambda 函数配置为在 VPC 中运行并且在多个子网上并且其中一个子网的路由配置不正确,也会发生这种情况表。
  • @Michael-sqlbot 非常感谢这是我的错误

标签: timeout aws-lambda amazon-vpc


【解决方案1】:

我在 VPC 中使用 Lambda 时遇到过这种情况(因此有一个 NAT 网关和 Internet 网关)。

我无意中选择了要运行 Lambda 的所有子网(包括公共子网),而它只能从私有子网访问互联网。

取消选择公共子网并保存,您应该可以解决问题。

这是我使用的知识库文章的链接 - https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 2020-11-26
    • 2021-03-07
    • 2020-12-06
    • 2020-12-15
    • 2019-09-17
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多