总的来说,我对在 VPC 中使用 AWS Lambda 感到非常困惑。问题是 Lambda 在尝试访问 S3 bucket 时超时了。解决方案似乎是 VPC 端点。
我已经将 Lambda 函数添加到 VPC 中,这样它就可以访问 RDS 托管的数据库(下面的代码中没有显示,但它是功能性的)。但是,现在我不能访问 S3,并且任何尝试这样做的尝试都会超时。
我尝试创建一个 VPC S3端点,但是什么都没有改变。
VPC 配置
每当我第一次创建 EC2实例时,我都使用默认创建的简单 VPC。它有四个子网,都是默认创建的。
路线表
_Destination - Target - Status - Propagated_
172.31.0.0/16 - local - Active - No
pl-63a5400a (com.amazonaws.us-east-1.s3) - vpce-b44c8bdd - Active - No
0.0.0.0/0 - igw-325e6a56 - Active - No
简单 S3下载 Lambda:
import boto3
import pymysql
from StringIO import StringIO
def lambda_handler(event, context):
s3Obj = StringIO()
return boto3.resource('s3').Bucket('marineharvester').download_fileobj('Holding - Midsummer/sample', s3Obj)