我试图在给定的订阅中收集我的Azure资源的完整JSON表示,但是无法弄清楚如何枚举给定资源类型的可用子资源。
例如,我可以获取Microsoft.Web / sites / {name}资源,但是该响应中没有任何内容告诉我Microsoft.Web / sites / {name} / config存在。在Provider对象中也找不到对/ config资源的任何引用。
Azure Resource Explorer似乎可以动态枚举它们,而性能开销却很小,因此我相信可以做到这一点。我只是不知道如何。使用azure-arm-resource nom包的NodeJS中的示例:
// Returns a data structure, but nothing about subtypes.
let p = client.providers.get("Microsoft.Web");
// Contains the resource, but not the resources subtypes (e.g. config/appsettings
let r = client.resources.getById(resourceId, apiVersion);
我正在寻找API中的某些东西,这些东西会给我提供一系列的子类型。如果是Microsoft.Web /站点,则类似于[“ config”,“ containerlogs”,“ diagnostics” ...]等。
答案 0 :(得分:0)
这就是您要寻找的电话:
https://management.azure.com/subscriptions/xxx/providers/Microsoft.Web?api-version=2019-05-10
它返回如下内容:
{
"resourceTypes": [
{
"resourceType": "components",
"locations": [ xxx ],
"apiVersions": [ yyy ],
},
xxx,
yyy
]
}
因此,您需要更仔细地检查呼叫的输出。或者只是执行简单的休息请求并解析输出。但老实说,components()
并不会改变太多,您最好对列表进行硬编码。