我在VPC中运行AWS Lambda函数。
在项目过程中,我遇到了问题,因为:
我可以在VPC中实现NAT网关,但如果我必须运行NAT服务器实例,那么无服务器的意义何在?那不是没有服务器的。
所以最终AWS让我疲惫不堪,我决定放弃在VPC中运行我的AWS Lambda功能 - 没有用于Internet代理的端点和各种AWS服务太难了。
我的问题是 - 在没有VPC的情况下运行我的AWS Lambda函数有什么缺点/缺点?
答案 0 :(得分:5)
如果您需要访问VPC中的资源,请在VPC中运行AWS Lambda函数。如果您不需要此访问权限,则不在VPC中运行它。
如果您需要访问Internet,则应将Lambda函数连接到专用子网并使用NAT Gateway,这是一个完全托管的NAT,因此您可以保持无服务器。它将解决您列出的问题。
答案 1 :(得分:3)
AWS提供了有关Lambda部署的参考文档:Serverless Application Lens, AWS Well-Architected Framework。他们在其中提供了以下决策树:
注意到的唯一主要缺点是VPC外部的Lambda无法直接访问VPC内的私有资源。
答案 2 :(得分:0)
最后我留在了VPC,但我在VPC中添加了一个EC2实例并在其上运行了TinyProxy。然后,我使用环境变量配置了我的AWS Lambda函数:
HTTPS_PROXY https://ip-10-0-1-53.eu-west-1.compute.internal:8888
boto3选择环境变量并将所有请求发送到代理。如果没有NAT网关的复杂性,这似乎工作正常。