gpt4 book ai didi

amazon-web-services - VPC 内的 Lambda 函数无法访问公共(public) Internet

转载 作者:行者123 更新时间:2023-12-04 03:00:25 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

1年前关闭。




Improve this question




我正在尝试从 Lambda 函数中向第三方服务发出出站 API 请求,但该函数总是超时而没有任何错误。

这以前在尝试执行 s3.putObject 时发生。在不同的功能(仍然在同一个 VPC/子网中)进行操作,我设法通过添加一个服务名称为 com.amazonaws.us-east-1.s3 的端点来解决这个问题并将其连接到与此 Lambda 函数所在的 VPC 关联的路由表。

在网络框内的 Lambda 仪表板 -> 安全组部分,我看到以下警告:

When you enable VPC, your Lambda function will lose default internet access. If you require external internet access for your function, ensure that your security group allows outbound connections and that your VPC has a NAT gateway.



我相信这个安全组允许出站连接,基于下面的出站规则表:

enter image description here

对于第二个要求,我可以确认此 VPC 具有 NAT 网关,因为在 VPC 仪表板的 NAT 网关选项卡中,出现在那里的 VCP 具有与之关联的 VCP,并且该 VPC 与托管 Lambda 函数的 VPC 相同。

我按照指南创建了 Flow Log监控进出VPC的流量,希望看到那些出站请求确实被拒绝了。但是,在这样做并检查 CloudWatch 日志后,所有记录都以 ACCEPT OK 结尾。或 NODATA .

How can I grant internet access to my VPC Lambda function?是我最初尝试遵循的指南,但我在 To create a public or private subnet 下的第 4 步卡住了:

  1. From the Change to: drop-down menu, choose an appropriate route table: For a private subnet, the default route should point to a NAT gateway or NAT instance:

    Destination: 0.0.0.0/0 Target: nat-… (or eni-…) For a public subnet, the default route should point to an internet gateway:

    Destination: 0.0.0.0/0 Target: igw-…



对于此 VPC 中的所有四个子网,单击 Change to: 右侧的下拉菜单只显示了一个选项,已经选择的一个, rtb-xxxxxxxx .单击该路由表的链接并单击摘要旁边的路由选项卡后,我看到了以下内容:

enter image description here

我可能做错了什么阻止 Lambda 函数访问 Internet?

最佳答案

要让 Lambda 通过 VPC 访问互联网,它应该位于 Private Subnet 中。与 NAT Gateway随附的。

根据您的屏幕截图,附加到子网的路由表有 igw-xxxxxxx附加使您当前的子网成为public subnet .

因此,要使事情正常进行,您可以执行以下操作:

  • 附上NAT Gateway而不是 igw-xxxxxx在您当前 subnet 的路由表中


  • 找到附加到您的 Lambda 的 ENI 并附加 Elastic IP如果你想上网。



  • 根据@John Rotenstein,如果您的 Lambda 不需要 VPC 资源,您可以将 Lambda 移出 VPC

    关于amazon-web-services - VPC 内的 Lambda 函数无法访问公共(public) Internet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50276852/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com