Amazon web services 为什么VPC内的aws lambda无法向SNS发送消息?

Amazon web services 为什么VPC内的aws lambda无法向SNS发送消息?,amazon-web-services,aws-lambda,amazon-sns,Amazon Web Services,Aws Lambda,Amazon Sns,我的lambda函数可以通过“无VPC”的发布方式向SNS发送消息,但当我把它放在一个有路由和互联网网关可以访问公共互联网的VPC中时,它会超时 编辑 我的lambda位于公共子网中,该子网已将0.0.0.0/0路由到internet网关,因此无法再次将其路由到NAT。是否可以将EIP分配给lambda功能您必须向您的VPC添加EIP,以便lambda功能(以及VPC中没有公共IP的其他功能)访问VPC之外的任何内容。您应该阅读的要知道的事情部分。启用专有网络后,无法访问外部互联网。因此,当您使

我的lambda函数可以通过“无VPC”的发布方式向SNS发送消息,但当我把它放在一个有路由和互联网网关可以访问公共互联网的VPC中时,它会超时

编辑
我的lambda位于公共子网中,该子网已将0.0.0.0/0路由到internet网关,因此无法再次将其路由到NAT。是否可以将EIP分配给lambda功能

您必须向您的VPC添加EIP,以便lambda功能(以及VPC中没有公共IP的其他功能)访问VPC之外的任何内容。您应该阅读的要知道的事情部分。

启用专有网络后,无法访问外部互联网。因此,当您使用boto3等库向SNS主题发送发布请求时,您的请求将超时

NAT是一种选择,但更具成本效益的方法是从VPN设置SNS的接口端点。您可以转到AWS VPN控制台并创建端点,然后选择SNS作为服务


下面是有关如何设置接口端点的更多详细信息:

Hi Mark,感谢您的回复。这就解释了一切。但我的lambda位于一个公共子网中,该子网已将0.0.0.0/0路由到internet网关,因此无法再次将其路由到NAT。为了解决这个问题,是否可以将EIP分配给lambda函数?不,必须使用NAT,不能将弹性IP分配给lambda函数。当Lambda函数可以有多个实例同时运行时,这又是如何工作的呢?但是,您可以将NAT添加到公用子网。或者,您可以将另一个具有NAT网关的子网添加到VPC,并将Lambda功能移动到该子网。您不能将NAT功能添加到公共子网。根据定义,公共子网使用Internet网关作为其默认路由。使用NAT设备的接口需要位于专用子网上。NAT网关或实例本身位于公共子网上,私有子网的默认路由指向NAT设备。SNS不在VPC中吗?不是吗?如果在VPC中,为什么需要NAT网关?@Jwan622 SNS不会在您的VPC中运行。