列出提供者资源类型的可用子资源

时间:2019-10-03 23:31:52

标签: azure azure-resource-manager azure-rest-api

我试图在给定的订阅中收集我的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” ...]等。

1 个答案:

答案 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()并不会改变太多,您最好对列表进行硬编码。