Amazon web services aws apigateway导入rest api返回“;无效的base64“;错误
我正在尝试按照中的说明导出和导入AWS网关API 导出正在工作:Amazon web services aws apigateway导入rest api返回“;无效的base64“;错误,amazon-web-services,base64,aws-api-gateway,aws-cli,Amazon Web Services,Base64,Aws Api Gateway,Aws Cli,我正在尝试按照中的说明导出和导入AWS网关API 导出正在工作: aws apigateway get-export --parameters extensions='apigateway' --rest-api-id MY_REST_API_ID --stage-name Prod --export-type swagger my-api-apigateway.json 使用--parameters extensions='apigateway' 和——参数扩展='integrations
aws apigateway get-export --parameters extensions='apigateway' --rest-api-id MY_REST_API_ID --stage-name Prod --export-type swagger my-api-apigateway.json
使用--parameters extensions='apigateway'
和——参数扩展='integrations'
但当我尝试从导出的文件导入时:
aws apigateway import-rest-api --fail-on-warnings --body file://%cd%/my-api-gateway.json
,我总是收到“Invalid base64:”错误。像这样:
Invalid base64: "{
"swagger" : "2.0",
"info" : {
"version" : "1.0",
"title" : "my-stack-name"
},
"host" : "MY_REST_API_ID.execute-api.eu-central-1.amazonaws.com",
"basePath" : "/Prod",
...
谷歌上没有任何文档和例子表明body应该是Base64
当我通过UI(操作->导入API)导入JSON时,同样的JSON似乎也能工作
我还尝试使用--cli输入json
:
{
"failOnWarnings": true,
"parameters": {
"endpointConfigurationTypes": "REGIONAL"
},
"body": {... JSON FROM EXPORT ...}
}
my api apigateway cli json.json
文件(根据aws apigateway导入rest api——生成cli框架
):
导入命令:
aws apigateway import-rest-api --cli-input-json file://./my-api-apigateway-cli-json.json
,但它说
Parameter validation failed:
Invalid type for parameter body, value: {'swagger': '2.0', ...
因此,问题是:
- 我们应该将json编码为base64吗
- 为什么没有记录此错误和行为(或者如果是,则记录在哪里?)
- 如何从cli成功执行导入
- --这里,
清楚地记录为表示api定义的原始字节数组body
aws apigateway import-rest-api --cli-binary-format raw-in-base64-out --body file://my-api-apigateway.json
使用
fileb://
而不是file://
对我来说很有效。比如说,
aws apigateway import-rest-api --body fileb://my-api.json
酷,这似乎有效。真的不明显。看起来我的aws cli版本实际上是2.0:
aws--version
显示了aws cli/2.0.0dev5 Python/3.7.5 Windows/10 botocore/2.0.0dev4
。我认为aws cli 2实际上将作为aws2
执行(根据,这是错误的),AFAIR我已经安装了这两个版本。这适用于apigateway的其他选项,例如put rest api