我尝试配置和更新AWS API网关的二进制支持选项。我可以通过Web UI执行此操作而不会出现问题,但我想编写此脚本。
使用CLI命令参考页面: http://docs.aws.amazon.com/cli/latest/reference/apigateway/get-rest-api.html http://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html
能够发出get-rest-api命令就好了:
C:\> aws apigateway get-rest-api --rest-api-id [ID]
{
"id": "[ID]",
"createdDate": 1490723884,
"name": "testbinarymediatypes"
}
但是在尝试更新binaryMediaTypes时:
PS C:\> aws apigateway update-rest-api --rest-api-id [ID] --patch-operations op=add,path=binaryMediaTypes,value='image/jpg'
调用UpdateRestApi时发生错误(BadRequestException) 操作:无效的补丁路径binaryMediaTypes
可以这样做,还是我每次都在手动添加Web UI中的类型?
答案 0 :(得分:2)
通过CLI添加这些内容的格式有点不直观。
aws apigateway update-rest-api --rest-api-id [ID]
--patch-operations "op=add,path=/binaryMediaTypes/image~1jpg"
aws apigateway update-rest-api --rest-api-id [ID]
--patch-operations "op=replace,path=/binaryMediaTypes/image~1jpg,value='image/gif'"
答案 1 :(得分:0)
我将此放在此处,以寻找更新apigateway endpointConfiguration的类似解决方案。
aws apigateway update-rest-api --rest-api-id yourId --patch-operations "op=replace,path=/endpointConfiguration/types/EDGE,value='REGIONAL'"
答案 2 :(得分:0)
另一种自动化解决方案:部署swagger。
对于拉动,我使用以下命令:
aws apigateway get-export \
--rest-api-id xxxxxxxxxx \
--stage-name prod \
--export-type swagger \
--parameters '{"extensions": "integrations,authorizers"}' \
--accepts application/yaml \
swagger.yaml
在swagger.yaml
的结尾处,我看到:
x-amazon-apigateway-binary-media-types:
- "image/png"
- "image/jpeg"
您可以使用以下命令上传:
aws apigateway put-rest-api \
--rest-api-id '5y7lkvtie6' \
--body 'file://swagger.yaml'
在您将需要通过Web控制台或通过awscli
再次部署舞台之后(从未尝试过,如果可能,请检查aws apigateway help
)。