使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何为已正确配置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
专家
已提问 1 年前123 查看次数
1 回答
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
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则