我创建了AWS Lambda来启动和停止私有VPC中托管的EC2实例。
我可以在“ NO VPC”中部署Lambda函数,并执行任何操作。
但是,当我在私有VPC(我的EC2所在的位置)和2个不同的子网(其中一个子网EC2已启动)中部署Lambda功能并进行必要的安全组更改时,我收到超时错误< / strong>,并且无法执行任何操作。
问题:尽管不需要外部互联网,但是否有必要向mbda添加NAT网关?
如果是,请告诉我原因。
如果没有,请告诉我要完成此过程还需要检查什么。
答案 0 :(得分:2)
在对AWS进行API调用时,可以从Internet访问service endpoints。因此,发出启动或停止Amazon EC2实例的命令需要访问Internet。
如果未将AWS Lambda函数配置为 使用VPC,则默认情况下它可以访问Internet 。
如果将AWS Lambda函数配置为使用VPC,并且该Lambda函数需要访问Internet,则:
或者,您可以为EC2创建 VPC端点。这允许发往EC2服务的命令无需通过Internet即可通过VPC端点。这通常是针对没有Internet网关的VPC(例如,没有公共访问权限的Dev / Test VPC)进行的。
最后,考虑一下Lambda函数是否确实需要连接到VPC。如果需要在VPC中访问 并访问Internet,则需要使用上述方法之一。但是,如果不需要访问VPC,则不要将其连接到VPC,它将可以正常连接到Internet。