如何为已正确配置NAT网关的Lambda函数配置互联网访问?

0

【以下的问题经过翻译处理】 你好,我正在配置Lambda以使其能够对API进行HTTP调用并访问互联网。

以下是我遵循的步骤:

  • 我创建了一个公共子网,其CIDR范围为10.0.128.0/20,其路由表包含指向互联网网关的路由。NAT网关已在此子网中进行了配置。
  • 我创建了一个私有子网,其CIDR范围为10.0.64.0/20。创建了一个路由表,目标为0.0.0.0/0,目标为NAT网关,并将其附加到该子网。
  • 为了测试NAT网关是否正常工作,我在AWS Network Manager中使用了可达性分析器,结果显示是可达的(源是创建在上述私有子网中的Linux EC2实例,目标是互联网网关)。
  • 我创建了一个安全组,允许所有入站和出站IPv4流量。
  • 在Lambda函数的VPC配置中,仅添加了私有子网和安全组。 添加后,Lambda经过测试可以向https://api.github.com进行API调用,但Lambda无法访问该API。为此,我添加了日志以记录状态调用。

非常感谢你的帮助!

该函数是一个简单的Lambda函数,使用HTTP客户端进行http调用。

NAT设置指南-https://repost.aws/knowledge-center/nat-gateway-vpc-private-subnet#

Lambda上网访问-https://repost.aws/knowledge-center/internet-access-lambda-function

YouTube视频-https://www.youtube.com/watch?v=Z3dMhPxbuG0

profile picture
EXPERTE
gefragt vor 5 Monaten79 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 以上实现已经进行了重新审查,加入了日志记录,并测试了一个免费 API 的调用 - https://jsonplaceholder.typicode.com/todos/1。我可以确认响应状态码为200 OK(Lambda 可以访问互联网)。 另一个所学是,由于 NAT 具有静态公共 IP,因此可以在希望 lambda 函数访问其资源的安全组中添加该 IP。

让 NAT 正常工作的高级总结: 将 NAT GW 创建在公共子网中。 将私有子网附加到 Lambda 并将其路由表连接到 NAT。

在将私有子网添加到 Lambda 时,还要添加一个允许 http 和 https 端口上所有出站流量的安全组。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen