我正在尝试从lambda函数发出一个简单的http请求。但是由于某种原因,任何请求似乎都没有通过。 lambda环境是否阻止任何请求。 Lambda位于No VPC配置上。
我对此进行了一些研究,发现了以下内容
https://forums.aws.amazon.com/thread.jspa?messageID=731223
但这确实超出了我对子网的理解。但是据我了解,如果不在任何VPC上,它应该可以成功进行呼叫?
答案 0 :(得分:0)
Lambda不会阻止任何网络请求,但是由于附加到Lambda的ENI没有公共IP地址,因此任何公共REST API调用都会失败。
解决方案是将流量从Lambda所在的子网路由到NAT网关/实例。然后该NAT将驻留在具有默认路由到Internet网关的子网中。
如果Lambda函数的代码不需要访问VPC中的私有资源,则应将其删除。在VPC中使用Lambda只会增加冷启动时间,并确保子网中有足够的IP供ENI使用,从而使执行过程复杂化。这是有关VPC中Lambda的文档。
https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#lambda-vpc
高度
-詹姆斯