我有一個lambda函數,我試圖用它來連接到DynamoDB表。我使用此代碼建立連接:無法在Java中創建與DynamoDB的連接AWS lambda函數
...
context.getLogger().log("Before create client..");
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(
"https://dynamodb.ap-southeast-2.amazonaws.com", "ap-southeast-2")).build();
context.getLogger().log("After create client..");
...
輸出我從功能有如下:
==================== FUNCTION OUTPUT ====================
{"errorMessage":"2017-07-28T01:11:34.092Z aeee6505-7331-11e7-b28b-db98038611cc Task timed out after 5.00 seconds"}
==================== FUNCTION LOG OUTPUT ====================
START RequestId: aeee6505-7331-11e7-b28b-db98038611cc Version: $LATEST
Before create client..END RequestId: aeee6505-7331-11e7-b28b-db98038611cc
REPORT RequestId: aeee6505-7331-11e7-b28b-db98038611cc Duration: 5003.51 ms Billed Duration: 5000 ms Memory Size: 256 MB Max Memory Used: 62 MB
2017-07-28T01:11:34.092Z aeee6505-7331-11e7-b28b-db98038611cc Task timed out after 5.00 seconds
正如你所看到的,它超時試圖建立連接時並從不打印第二條日誌語句。是否有理由超時而不是拋出異常,例如如果IAM角色出現錯誤或什麼? dynamoDB區域和lambda區域相同(悉尼 - ap-southeast-2),所以我原以爲這會起作用。
lambda函數使用IAM角色具有以下權限:
AmazonDynamoDBReadOnlyAccess
AmazonS3ReadOnlyAccess
AWSLambdaBasicExecutionRole
你確定這是內存問題?日誌說使用的內存是62MB。我的猜測是您的DynamoDB查詢需要更多時間。 – kosa
@ kosa奇怪的是沒有查詢..這是字面上無法建立連接,直到我增加了內存,然後它突然開始工作.. – Pete