You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java使用本地DynamoDB时出现无法加载AWS凭证错误是什么原因?

错误原因
  • 即使连接的是本地部署的DynamoDB实例,AWS Java SDK初始化客户端时仍然会默认按照凭证提供链的顺序查找有效AWS凭证,你当前的代码没有为DynamoDB客户端配置任何凭证,SDK遍历完所有凭证提供方都找不到有效凭证,就会抛出该异常。
  • 本地DynamoDB本身不需要真实的AWS账号凭证,只需要传入任意非空的凭证字符串即可通过SDK的校验。
解决方案

修改初始化DynamoDB客户端的initDB方法,在构造客户端时手动传入静态虚拟凭证即可,修改后的代码如下:

public static void initDB() {
    // 构造虚拟凭证,本地DynamoDB对凭证内容无校验,随便填写非空字符串即可
    AWSCredentials fakeCredentials = new BasicAWSCredentials("fakeAccessKey", "fakeSecretKey");
    amazonDynamoDBClient = AmazonDynamoDBClientBuilder.standard()
      .withCredentials(new AWSStaticCredentialsProvider(fakeCredentials))
      .withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration("http://localhost:8000", aws_region)
      ).build();
    dynamoDB = new DynamoDB(amazonDynamoDBClient);
}
注意事项
  • 该配置仅适用于本地测试场景,不要将硬编码凭证的逻辑带到生产环境,生产环境请使用默认的凭证链加载逻辑(比如IAM角色、环境变量、~/.aws/credentials文件等方式获取凭证)。

内容的提问来源于stack exchange,提问作者N.Rajal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:06:00