のDynamoDBへの接続を作成できません。ラムダ関数がありますが、これは私が持っているDynamoDBテーブルに接続しようとしています。私は、接続を確立するために、このコードを使用しています:Java AWSラムダ関数
...
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
あなたが見ることができるように、それはタイムアウトし、接続を構築しようとしています2番目のログステートメントを出力しません。例外を投げるのではなく、タイムアウトする理由はありますか? IAMの役割などにエラーがある場合は、 dynamoDB領域とラムダ領域は同じです(Sydney - ap-southeast-2)ので、これはうまくいくと思いました。
ラムダ関数を使用しているIAMロールには次の権限を持っています
AmazonDynamoDBReadOnlyAccess
AmazonS3ReadOnlyAccess
AWSLambdaBasicExecutionRole
固定
細かい作業を開始し、これはメモリの問題であるあなたは確かにいますか?使用メモリを示すログは62MBです。私の推測では、DynamoDBのクエリに時間がかかりました。 – kosa
@kosa奇妙なことに質問がありません。メモリを増やすまで文字通り接続を確立できなかったので、突然動作しました。 – Pete