2017-07-28 1 views
0

Ich habe eine Lambda-Funktion, die ich verwenden möchte, um eine Verbindung zu einer DynamoDB-Tabelle, die ich habe. Ich verwende diesen Code um die Verbindung herzustellen:Kann keine Verbindung zu DynamoDB in Java herstellen AWS Lambda-Funktion

... 

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.."); 

... 

Der Ausgang I von der Funktion ist wie folgt:

==================== 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 

Wie Sie sehen können, ist es mal aus, wenn sie versuchen, die Verbindung zu bauen und druckt nie die zweite Protokollanweisung. Gibt es einen Grund, dass es eine Zeitüberschreitung auslöst, anstatt eine Ausnahme auszulösen, z. Wenn es einen Fehler mit der IAM-Rolle oder etwas gibt? Die DynamoDB-Region und Lambda-Region sind die gleichen (Sydney - ap-Südost-2), also hätte ich gedacht, das würde funktionieren.

Die IAM Rolle der Lambda-Funktion hat die folgenden Berechtigungen verwendet:

AmazonDynamoDBReadOnlyAccess

AmazonS3ReadOnlyAccess

AWSLambdaBasicExecutionRole

Antwort

1

es behoben .. die Erinnerung an die gestoßen Lambda-Funktion auf 1024MB. Ernsthaft nicht sicher, warum verwendet, dass war erforderlich, bestimmte Speicher war immer um 60-70MB:/

+0

Sind Sie sicher, dass das Speicherproblem ist? log sagender verwendeter Speicher ist 62MB. Ich nehme an, dass Ihre DynamoDB-Abfrage mehr Zeit in Anspruch genommen hat. – kosa

+0

@kosa Die seltsame Sache ist, es gab keine Abfrage .. es war buchstäblich nicht in der Lage, eine Verbindung herzustellen, bis ich den Speicher erhöht, dann begann es plötzlich zu arbeiten .. – Pete

0

Es Speicherproblem only..I Lambda-Funktion, es 1024MB geändert starten feine Arbeit

+0

Dies bietet keine Antwort auf die Frage. Sobald Sie genug [Reputation] (https://stackoverflow.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (https://stackoverflow.com/help/privileges/comment); Stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (https://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/17795438) – QBrute

Verwandte Themen