AWS Lambda 函数停止连接?

AWS Lambda function stops being able to connect?

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

触发后,该函数会向 Internet 上的服务发出 HTTP 请求,然后在收到响应后,在我们的 VPC 中执行一些 SQL 查询,然后再向同一服务发出几个 HTTP 请求。

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

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

运行 预计 few/several 小时。然后,在那之后,它再也不会成功,因为为第一个 HTTP 请求建立 TCP 连接的尝试可靠地失败了。只有在我使用相同的代码和配置创建一个全新的 Lambda 函数后,它才能连接到互联网。

怎么会这样?

I've included our NAT gateway subnet among the Lambda's VPC subnets.

这绝对是配置错误。

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