AWS Lambda - NAT网关Internet访问导致超时

问题描述 投票:0回答:2

我有一个AWS Lambda函数:

  • 检查Redis Elasticache实例,
  • 如果在缓存中找不到该项,请转到Google Places API服务。

Redis实例位于私有子网中;因此,为了获取它,我添加了VPC和实例所在的子网。我还指定了允许所有出站流量的安全组。网络ACL是应用于所有入站和出站流量的默认ACL。

通过控制台将VPC添加到Lambda函数时,它会提示:

启用VPC后,您的Lambda函数将失去默认的Internet访问权限。如果您的功能需要外部Internet访问,请确保您的安全组允许出站连接,并确保您的VPC具有NAT网关。

所以,在私有子网的Route Table,我也添加了一个NAT gateway。但是,在使用Lambda函数调用Google Places API服务时,它总是注定会导致超时。

简而言之,我怀疑NAT网关是否正确允许Lambda函数的Internet访问。我怎样才能检查它出了什么问题?

NAT网关是否记录了在CloudWatch等中以某种方式通过它进行的呼叫或呼叫尝试?

amazon-web-services aws-lambda nat
2个回答
2
投票

需要执行以下步骤

  1. 具有完全VPC权限的IAM角色,分配给lambda函数。
  2. 具有公共和私有子网的VPC
  3. 创建NAT网关时a)子网必须是公共子网b)弹性IP创建一个新子网或分配一个子网
  4. 创建路由表并添加另一个目标路由作为我们上面创建的NAT网关。你的lambda现在应该开心

0
投票

我的案例的问题证明了,我在私有子网中创建了NAT网关。

确保将NAT网关放在公有子网中。

顺便提一下,CloudWatch for NAT Gateway中有指标但​​没有可用的直接日志记录。

© www.soinside.com 2019 - 2024. All rights reserved.