2017-07-28 154 views
0

我有一個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

回答

1

固定它..顛簸的記憶lambda函數爲1024MB。說真的不知道爲什麼使用了被要求給內存是始終圍繞60-70MB:/

+0

你確定這是內存問題?日誌說使用的內存是62MB。我的猜測是您的DynamoDB查詢需要更多時間。 – kosa

+0

@ kosa奇怪的是沒有查詢..這是字面上無法建立連接,直到我增加了內存,然後它突然開始工作.. – Pete

0

它的內存問題only..I改變拉姆達功能1024MB它開始工作的罰款

+0

這並沒有提供一個問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/17795438) – QBrute