如何通过Azure CLI获取特定API Management Service的后端列表?
用Azure CLI获取API Management后端列表的方法
Azure CLI的az apim命令集确实没有专门的子命令直接列出APIM实例的后端,但可以通过以下两种可行方式实现:
方法一:使用az rest调用Azure管理API
Azure管理API提供了获取APIM后端列表的接口,我们可以通过az rest命令直接调用这个接口:
az rest --method get \ --uri "/subscriptions/<你的订阅ID>/resourceGroups/<资源组名称>/providers/Microsoft.ApiManagement/service/<APIM实例名称>/backends?api-version=2023-03-01-preview"
说明:
- 替换命令中的
<你的订阅ID>、<资源组名称>、<APIM实例名称>为实际值 api-version可根据需求调整为最新稳定版本(比如2022-09-01-preview)- 若需要格式化输出,可搭配
jq工具过滤结果:az rest --method get \ --uri "/subscriptions/<你的订阅ID>/resourceGroups/<资源组名称>/providers/Microsoft.ApiManagement/service/<APIM实例名称>/backends?api-version=2023-03-01-preview" | jq '.value[] | {name: .name, url: .properties.url}'
方法二:通过APIM配置导出间接获取
你也可以导出APIM的完整配置,从中提取后端信息:
az apim export --name <APIM实例名称> --resource-group <资源组名称> --xml-path apim-config.xml
导出的XML文件中,<backends>节点下包含所有后端的配置信息,可通过文本工具或脚本解析该节点内容。
补充说明
之前遍历API操作未找到后端信息,是因为后端通常为全局配置或绑定到API级别(通过API策略引用),而非直接关联单个操作。若要查看某API关联的后端,需查看该API的策略配置,同样可用az rest获取:
az rest --method get \ --uri "/subscriptions/<你的订阅ID>/resourceGroups/<资源组名称>/providers/Microsoft.ApiManagement/service/<APIM实例名称>/apis/<API名称>/policies/policy?api-version=2023-03-01-preview"
内容的提问来源于stack exchange,提问作者Miguel Febres
相关产品推荐
相关产品推荐

