AWS CLI执行aws apigateway get-rest-apis仅返回REST API 如何获取全部API
问题原因
aws apigateway get-rest-apis 命令仅支持返回REST协议类型的API Gateway资源,你账号下未查询到的2个API属于HTTP API或WebSocket API类型,这两类资源归属API Gateway V2服务范畴,无法通过上述命令查询。
解决方案
- 单独查询HTTP API、WebSocket API资源,执行以下命令:
aws apigatewayv2 get-apis
该命令返回的结果会包含所有非REST类型的API Gateway资源。 - 如果需要一次查询所有三类API,可以通过jq工具合并两个命令的输出,示例命令如下:
aws apigateway get-rest-apis | jq '.items[] | {id: .id, name: .name, protocolType: "REST"}' && aws apigatewayv2 get-apis | jq '.Items[] | {id: .ApiId, name: .Name, protocolType: .ProtocolType}'
执行后会统一输出所有API的ID、名称、协议类型信息。
注意事项
- 如果你的API部署在非默认配置的AWS区域,需要在命令后添加
--region <区域代码>参数指定对应区域,否则仅返回默认区域的资源。 - 请确认你的AWS访问凭证拥有
apigateway:GetRestApis、apigatewayv2:GetApis权限,否则会出现查询结果为空或权限报错的情况。
内容的提问来源于stack exchange,提问作者user630702
相关产品推荐
相关产品推荐

