无法从本地Java应用程序(云外部)访问AWS DynamoDB

时间:2019-03-25 14:59:51

标签: amazon-web-services amazon-dynamodb

我想从运行在本地计算机上的Java应用程序访问DynamoDB(真实的,不是本地的)。 我设置了环境变量:AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_DEFAULT_REGION,AWS_DEFAULT_PROFILE。

尽管如此,我还是得到了错误:

“ com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException:请求中包含的安全令牌无效(服务:AmazonDynamoDBv2;状态代码:400;错误代码:UnrecognizedClientException”

这是代码(是科特林):

val client = AmazonDynamoDBClientBuilder.standard()
        .withRegion(Regions.EU_WEST_1)
        .build()
val dynamoDB = DynamoDB(client)
val table = dynamoDB.getTable("SomeTable")
val key = "some-key-field"
val spec = GetItemSpec().withPrimaryKey("some-key-value", key)
val result = table.getItem(spec).toJSONPretty().toString()
println(result)
dynamoDB.shutdown()

是否可以像这样从本地Java(JVM)应用程序访问AWS DynamoDB?这里缺少什么?

P.S。

我可以从AWS CLI访问DynamoDB,它正在运行,问题出在从我的应用程序进行访问。

更新

找到了设置凭据的方法,但没有帮助。

val accessKey = System.getenv("AWS_ACCESS_KEY_ID")
val accessSec = System.getenv("AWS_SECRET_ACCESS_KEY")
val client = AmazonDynamoDBClientBuilder.standard()
        .withCredentials(AWSStaticCredentialsProvider(BasicAWSCredentials(accessKey, accessSec)))
        .withRegion(Regions.EU_WEST_1)
        .build()

错误是相同的。

0 个答案:

没有答案