使用AWS CLI导入Swagger JSON文件时出现BadRequestException错误
问题原因
你遇到的报错是AWS CLI v2对--body参数的处理规则和旧版本不同导致的:当前命令直接填写本地文件路径D:/aws/test.json时,CLI不会自动读取文件内容,而是会把路径字符串本身作为请求体传递给ImportRestApi接口,自然会被识别为无效的OpenAPI输入。控制台导入时是直接读取文件内容提交,所以可以正常使用。
解决方案
修改命令,给本地文件路径添加file://前缀即可,修正后的命令如下:
aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL --cli-binary-format raw-in-base64-out --body file://D:/aws/test.json --no-fail-on-warnings
额外排查点
如果修改后仍报错,可按以下步骤排查:
- 如果文件路径包含空格、中文等特殊字符,需要用引号将
file://开头的完整路径包裹 - 若在Windows PowerShell环境执行命令,可尝试给路径再加一层单引号,格式为
'file://D:/aws/test.json'避免PowerShell自动转义特殊字符 - 先执行本地文件读取命令确认文件可正常访问:Windows环境执行
Get-Content D:/aws/test.json -Raw,类Unix/WSL环境执行cat /d/aws/test.json,确认输出为完整的Swagger JSON内容
内容的提问来源于stack exchange,提问作者user
相关产品推荐
相关产品推荐

