Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何配置NAT,以便与已具有用于S3访问的Internet网关的lambda一起使用?_Amazon Web Services_Amazon S3_Aws Lambda_Amazon Rds_Nat - Fatal编程技术网

Amazon web services 如何配置NAT,以便与已具有用于S3访问的Internet网关的lambda一起使用?

Amazon web services 如何配置NAT,以便与已具有用于S3访问的Internet网关的lambda一起使用?,amazon-web-services,amazon-s3,aws-lambda,amazon-rds,nat,Amazon Web Services,Amazon S3,Aws Lambda,Amazon Rds,Nat,我的设置是: S3 (website) -> API Gateway -> Lambda -> RDS -> S3 (configuration) -> Shopify -> Transactional Mail 我已经设置了一个I

我的设置是:

S3 (website) -> API Gateway -> Lambda -> RDS 
                                      -> S3 (configuration)
                                      -> Shopify
                                      -> Transactional Mail
我已经设置了一个Internet网关,允许访问我的S3配置,我需要连接NAT,以允许我向第三方拨打电话。我试图通过更改0.0.0.0/0->{my NAT}的路由表条目来仅使用NAT(),但这只会导致无法访问我的S3配置存储桶

任何帮助都将不胜感激

编辑:为了清楚起见,我已经阅读了文档,我所理解的问题是lambda和RDS共享的安全组与它们关联的子网之间的关系


当我将lambda配置为我的RDS实例所在的安全组的一部分时,我需要将它与至少2个子网关联。。。这些应该是新的子网,而不是与我的RDS实例关联的子网吗?AKA lambda是否需要与RDS共享子网才能访问该子网?

如果lambda功能只需要访问VPC资源和S3,那么最简单的配置方法是向您的VPC添加一个。如果Lambda功能需要访问VPC资源以及S3和DynamoDB以外的其他资源(目前仅支持VPC端点的两个服务),则Lambda功能必须位于具有NAT网关的专用子网中

公共子网中的实例可以选择具有公共IP地址,但这不是必需的。VPC中的Lambda功能永远不会获得公共IP地址,这就是为什么VPC中的Lambda功能必须位于具有NAT网关的私有子网中才能访问Internet

Lambda函数获得公共IP的唯一时间是当它们根本不在VPC中时。在这种情况下,他们可以访问VPC中除资源以外的任何内容



关于“同一安全组”的注释:在同一安全组中不允许资源相互访问。Lambda函数需要位于RDS安全组已授予访问权限的安全组中。关于子网,Lambda只需要位于同一VPC中的任何子网中,而不需要与RDS实例位于同一子网中

这正是我想要弄明白的,谢谢。FWIW:事实证明,按照给定的例子简单地说是行不通的。我不知道这是否是我所在的地区,但有一些人对VPC更为熟悉,看看这个,他们也无法让它正常工作。