【发布时间】:2018-01-03 22:23:01
【问题描述】:
我有一个 lambda 函数,我试图用它来连接我拥有的 DynamoDB 表。我正在使用此代码建立连接:
...
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 区域是相同的(Sydney - ap-southeast-2),所以我认为这会起作用。
lambda 函数使用的 IAM 角色具有以下权限:
AmazonDynamoDBReadOnlyAccess
AmazonS3ReadOnlyAccess
AWSLambdaBasicExecutionRole
【问题讨论】:
标签: java amazon-web-services amazon-dynamodb aws-lambda