带有 VPC 的 AWS Lambda 函数仅在私有子网中有效

Eva*_*mez 0 nat subnet vpc amazon-web-services aws-lambda

我一直致力于将 Amazon Lambda 函数与 mySQL 数据库和外部 API 的 RDS 连接集成。要访问 API,需要有一个 Internet 网关,然后是允许从0.0.0.0/0.

我有一个公共子网和一个私有子网。公共子网路由到 Internet 网关,而私有子网路由到 NAT。

这让我想到,如果我使用公共子网运行 Lambda 函数,它会连接到 Internet。但是,每次都超时。但是,当我从私有子网中运行 lambda 函数时,它起作用了!因此,NAT 似乎可以工作,因为这是与私有 sunet 相关联的,但仅使用 Internet 网关是行不通的。

有没有人对此有任何解释?

Joh*_*ein 5

要使 Amazon Lambda 函数连接到 Internet,需要满足以下条件之一:

  • Lambda 函数连接到 VPC,
  • Lambda 函数连接到私有子网,并且配置了 NAT 网关/NAT 实例,或者
  • Lambda 函数连接到公有子网,并为子网中的 Lambda 函数使用的弹性网络接口 (ENI) 分配了一个弹性 IP 地址

仅将 Lambda 函数连接到公共子网(没有 EIP)不会提供 Internet 访问。