總的來說,我在VPC中使用AWS Lambda感到非常困惑。問題是Lambda在嘗試訪問S3存儲桶時超時。該解決方案似乎是VPC端點。從VPC內的Lambda訪問AWS S3
我已將Lambda函數添加到VPC,因此它可以訪問RDS託管數據庫(未在下面的代碼中顯示,但功能正常)。但是,現在我無法訪問S3以及任何嘗試這樣做的時間。
我試着創建一個VPC S3端點,但沒有任何改變。
VPC配置
我使用的是默認創建一個簡單的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)
VPC S3端點需要路由表配置和安全策略配置。如果您需要幫助,您需要顯示如何配置這些設置。該文檔位於:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html或者,您可以添加一個NAT網關到VPC,這將使Lambda函數可以訪問VPC之外的所有內容,而不僅僅是S3服務。 –
這是vpc配置問題。在路由表上配置任意一個與NAT網關的sbunet assosiatio。你仍然在尋找問題? –
我已經添加了一些關於VPC配置的信息。我認爲這將是問題出在哪裏,但VPC對我來說在很大程度上是一個黑盒子。我不知道用什麼來檢查它,看看可能是什麼配置不當。 – noobiemcfoob