我在同一區域(us-east-1)中有lambda函數和dynamo db表。在lambda函數正進行非常簡單的查詢:從lambda函數對dynamodb的請求非常緩慢
params =
TableName: 'users'
Item:
email:
S: event.body.email
ConditionExpression: 'attribute_not_exists (email)'
dynamodb.putItem(params, context.done)
只有在DynamoDB表幾排,對電子郵件和讀/寫throughtputs散列鍵設置爲5/5。
Lambda函數在〜4秒內執行......這非常慢。難道我做錯了什麼?
我測試過我與lambda函數不同的內存設置功能(它被設置爲先前128MB):
- 256MB =>〜2000毫秒
- 512MB =>〜1000毫秒
- 1024MB =>〜500ms的
- 1536MB =>〜300ms的
因此,似乎響應時間取決於內存的1-1(事實上,隨着AWS隨着內存的擴大而增加計算容量)。仍然這是瘋狂的,因爲要製作非常簡單的REST API,我必須設置1536mb內存,使其「響應」,而我的程序使用17mb!
嗯上我已經計算過它會花費另一方面:
- $ 8.32每1個暢想4000ms請求使用
- 10.004 $每1個暢想300ms的請求,128MB內存採用1536MB內存
所以它不是那麼糟糕我猜...
你確定你沒有在你的Lambda函數中做其他任何事嗎?簡單的JS調用應該不需要那麼多的內存,並且不應該花費那麼多時間。 – Guy
只是爲了比較,如果你打SimpleDB,你會得到什麼樣的表現? –