代码之家  ›  专栏  ›  技术社区  ›  mac01021

AWS Lambda功能停止连接?

  •  0
  • mac01021  · 技术社区  · 7 年前

    我有一个Lambda函数,我使用cloudwatch计划的事件每小时运行一次。

    触发时,该功能会向internet上的服务发出HTTP请求,然后在收到响应后,在专有网络内执行一些SQL查询,然后再向同一服务发出多个HTTP请求。

    由于SQL数据库,Lambda必须在我们的专有网络中运行。因此,为了连接到internet,我将我们的NAT网关子网包括在Lambda的VPC子网中。

    我多次尝试销毁和创建此Lambda函数,每次都有相同的结果:

    它按预期运行了几个小时。然后,在那之后,它再也不会成功,因为尝试为第一个HTTP请求建立TCP连接时失败了。只有在我用相同的代码和配置创建了一个全新的Lambda函数之后,它才能连接到internet。

    怎么会这样?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Michael - sqlbot    7 年前

    我已经将我们的NAT网关子网包括在Lambda的VPC子网中。

    这绝对是一个错误的配置。

    需要访问Internet的Lambda函数需要位于其默认路由的子网上 指向 NAT网关——其中任何一个子网都不能是具有实际NAT网关的子网。NAT网关从不向与网关本身位于同一子网上的任何实例提供NAT服务。