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

Windows本地DynamoDB执行describe-table报[Errno 22]无效参数

Windows本地DynamoDB执行describe-table时报[Errno 22] Invalid argument的解决方案

你遇到的这个问题是Windows系统下AWS CLI与本地DynamoDB之间的时间戳解析兼容性问题,我来帮你梳理下解决思路和具体方案:

问题根源

从你用--debug排查的结果来看,服务其实已经返回了表的完整信息,但在解析时间戳字段(比如表的CreationDateTime)时触发了错误。这是因为本地DynamoDB返回的时间戳是ISO 8601标准格式,而Windows系统的区域设置如果和这个格式不匹配,基于Python实现的AWS CLI v1在解析时就会抛出OSError: [Errno 22] Invalid argument。而查询不存在的表时,不会返回带时间戳的元数据字段,所以不会触发这个错误。

具体解决方法

方法1:升级到AWS CLI v2

AWS CLI v2针对Windows平台做了大量兼容性优化,已经修复了这类时间戳解析问题。操作步骤如下:

  • 卸载旧版本:打开命令提示符执行 pip uninstall awscli
  • 下载官方安装包安装AWS CLI v2(注意v2不支持通过pip安装),安装完成后重启终端,执行aws --version确认版本为aws-cli/2.x.x,之后再尝试describe-table命令。

方法2:调整Windows区域设置

如果暂时不想升级CLI,可以修改系统区域设置,让时间/日期格式与ISO标准兼容:

  • 打开「控制面板」→「区域」→「格式」标签页
  • 将短日期格式改为 yyyy-MM-dd,长日期格式调整为年份在前的格式(比如yyyy'年'M'月'd'日')
  • 将时间格式改为 HH:mm:ss(24小时制),避免AM/PM格式干扰解析
  • 点击「应用」后,重启终端再执行目标命令

方法3:临时用WSL执行命令

如果上述方法都不想尝试,也可以通过Windows子系统Linux(WSL)启动本地DynamoDB,然后在WSL终端中执行AWS CLI命令——Linux环境下的时间戳解析逻辑不会有这个Windows特有的问题。

验证操作

修改完成后,重新执行命令验证:

aws dynamodb describe-table --table-name MusicCollection2 --endpoint-url http://localhost:8000

如果返回正常的表元数据,说明问题已经解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:37:41