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

Node.js连接本地DynamoDB报UnrecognizedClientException令牌无效如何解决

本地DynamoDB UnrecognizedClientException 错误解决方案

1. 修正SDK连接配置

本地部署的DynamoDB默认不需要真实AWS凭证,配置任意非空的密钥即可,你配置了AWS控制台真实凭证反而可能触发校验逻辑报错,需同时显式指定本地endpoint和region,避免sdk默认请求线上AWS服务。

正确配置示例

AWS SDK v2 版本:

import AWS from 'aws-sdk';

AWS.config.update({
  region: 'local',
  endpoint: 'http://localhost:8000', // 替换为你本地DynamoDB实际启动的地址
  accessKeyId: 'testKey', // 任意非空字符串即可
  secretAccessKey: 'testSecret' // 任意非空字符串即可
});

const dynamodb = new AWS.DynamoDB();

AWS SDK v3 版本:

import { DynamoDBClient } from "@aws-sdk/client-dynamodb";

const dynamodbClient = new DynamoDBClient({
  region: "local",
  endpoint: "http://localhost:8000",
  credentials: {
    accessKeyId: "testKey",
    secretAccessKey: "testSecret"
  }
});

2. 排查隐式凭证配置优先级问题

AWS SDK会按照优先级读取凭证,如果你没有在代码中显式指定credentials,以下位置的无效凭证会触发报错:

  • 本地凭证文件:检查~/.aws/credentials(Windows路径为C:\Users\<你的用户名>\.aws\credentials),如果该文件内的凭证过期、无效,可临时重命名.aws目录后重启服务测试
  • 环境变量:检查当前运行环境是否设置了AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN相关环境变量,可执行对应系统命令查看,存在无效变量的话先清除再测试

3. 检查本地DynamoDB启动参数

普通测试场景下不要添加额外的权限校验启动参数,推荐使用默认共享数据库模式启动,启动命令参考:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
如果你开启了IAM身份校验类的启动参数,需要确认你使用的凭证和校验规则匹配。

内容的提问来源于stack exchange,提问作者USER

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:06:04