DynamoDBLocal被拒絕我的憑據儘管documentation的指示有效憑據是多餘的:DynamoDBLocal憑據失敗
的AWS軟件開發工具包爲DynamoDB要求您的應用程序配置指定訪問密鑰值和AWS區域價值...這些不必是有效的AWS值才能在本地運行。使用
[default] aws_access_key_id = BogusAwsAccessKeyId aws_secret_access_key = BogusAwsSecretAccessKey
運行DynamoDBLocal:
在這種情況下,我已經設置了我的憑據~/.aws/credentials
作爲
java -Djava.library.path=./DynamoDBLoc_lib -jar DynamoDBLocal.jar
檢查它的工作擊中http://localhost:8000/shell/
然後運行我的測試Java應用程序:
DefaultAWSCredentialsProviderChain credentialProvider = new DefaultAWSCredentialsProviderChain();
AWSCredentials awsCredentials = credentialProvider.getCredentials();
log.info("creds \"{}\", \"{}\"", awsCredentials.getAWSAccessKeyId(), awsCredentials.getAWSSecretKey());
AmazonDynamoDBClient client = new AmazonDynamoDBClient(credentialProvider);
client.withEndpoint("http://localhost:8000");
client.withRegion(Regions.US_WEST_2);
dynamoDB = new DynamoDB(client);
try {
TableCollection<ListTablesResult> tables = dynamoDB.listTables();
while (tables.iterator().hasNext()) { // <-- exception thrown here
log.info(tables.iterator().next().getTableName());
}
} catch (Exception e) {
log.error("", e);
}
這導致這樣的輸出:
creds 「BogusAwsAccessKeyId」, 「BogusAwsSecretAccessKey」 com.amazonaws.AmazonServiceException:包括在請求安全令牌無效。 (服務:AmazonDynamoDBv2;狀態代碼:400;錯誤代碼:UnrecognizedClientException
爲什麼它涉及
You are correct 。我註釋掉了'withRegion()'並且它繼續了smoo thly。 有趣的是,DynamoDBLocal.UsageNotes表示,「數據庫文件將被命名爲myaccesskeyid_region.db,它們出現在您的應用程序配置中時將使用AWS訪問密鑰ID和區域」,這就是我爲什麼設置它(以及後來當我轉向實際的AWS時,我想要在該地區)。無論如何,趕上,謝謝! :) – Bex