首次使用SAM本地调用HelloWorldFunction遇request()参数错误
解决SAM Local Invoke报错:request() got an unexpected keyword argument 'chunked'
问题场景
- SAM CLI版本:1.86.1
- AWS CLI版本:aws-cli/2.12.7 Python/3.11.4 Windows/10 exe/AMD64
- 已成功执行
sam init和sam build,运行sam local invoke 'HelloWorldFunction'时触发报错:Error: request() got an unexpected keyword argument 'chunked' - Docker已处于运行状态
报错根源
从堆栈跟踪来看,问题源于SAM CLI自带的urllib3库与Docker客户端依赖的请求库版本不兼容:旧版本的urllib3连接对象不支持chunked参数,导致Docker ping请求失败。
解决方案
1. 升级SAM CLI到最新版本
AWS在后续版本中修复了该依赖冲突问题,直接升级即可解决:
- 卸载当前SAM CLI,下载对应Windows版本的最新官方安装包重新安装
- 安装完成后执行
sam --version确认版本更新
2. 手动调整依赖库版本(临时修复)
若暂时无法升级SAM CLI,可手动修改其内置的urllib3版本:
- 进入SAM CLI的Python运行环境目录:
cd "C:\Program Files\Amazon\AWSSAMCLI\runtime\Scripts" - 安装兼容版本的
urllib3:pip install urllib3==1.26.15 - 重新执行
sam local invoke 'HelloWorldFunction'验证
3. 验证Docker可用性
虽然Docker已运行,仍需确认其API正常响应:
- 执行
docker ps,若命令能正常返回容器列表,则Docker服务正常;若报错,重启Docker服务后再尝试
内容的提问来源于stack exchange,提问作者Rohil
相关产品推荐
相关产品推荐

