Windows环境AWS CLI创建CloudFormation栈时遇文件找不到错误
解决Windows下AWS CLI CloudFormation模板路径错误问题
问题原因
你遇到的Error parsing parameter '--template-body': Unable to load paramfile file://./stack.json: [Errno 2] No such file or directory错误,核心是Windows系统下AWS CLI对file://路径的解析逻辑和类Unix系统不一样。当你用file://./stack.json时,CLI会错误地把它解析成Windows根目录(比如C:\)下的./stack.json,而不是你当前工作目录里的目标文件。
解决方案
这里有3种可靠的解决方法,按推荐优先级排序:
1. 直接用本地相对路径(最简单)
去掉file://前缀就行,AWS CLI在Windows下会自动识别当前工作目录里的文件:
aws cloudformation create-stack --stack-name dockerApp --template-body ./stack.json
如果stack.json不在当前目录,直接写相对路径即可,比如:
aws cloudformation create-stack --stack-name dockerApp --template-body ../config/stack.json
2. 使用Windows格式的绝对路径
要是不确定当前工作目录,或者文件路径比较复杂,直接用完整的绝对路径(推荐用正斜杠,或者转义后的反斜杠):
# 正斜杠写法(推荐) aws cloudformation create-stack --stack-name dockerApp --template-body C:/Users/YourName/projects/stack.json # 反斜杠需要转义(注意双反斜杠) aws cloudformation create-stack --stack-name dockerApp --template-body C:\\Users\\YourName\\projects\\stack.json
3. 用正确的Windows File URI格式
如果一定要保留file://前缀,得遵循Windows的File URI规范:路径前加三个斜杠,然后是盘符和路径(用正斜杠):
aws cloudformation create-stack --stack-name dockerApp --template-body file:///C:/Users/YourName/projects/stack.json
额外验证步骤
执行命令前可以先确认文件存在:
- 打开命令提示符,切换到
stack.json所在目录,执行dir stack.json,确认文件列表里能看到它。 - 或者用绝对路径执行
type C:/Users/YourName/projects/stack.json,确认能正常读取文件内容。
内容的提问来源于stack exchange,提问作者A Kumar
相关产品推荐
相关产品推荐

