Список доступных подресурсов для типа ресурса поставщика

Я пытаюсь собрать полное JSON-представление моих ресурсов Azure в данной подписке, но не могу понять, как я перечисляю доступные подресурсы для данного типа ресурса.

Например, я могу получить ресурс Microsoft.Web / sites / {name}, но в этом ответе ничего не говорится о существовании Microsoft.Web / sites / {name} / config. Я также не могу найти никаких ссылок на ресурс / config в объекте Provider.

Обозреватель ресурсов Azure, кажется, перечисляет их динамически с очень небольшими затратами на производительность, поэтому я считаю, что это возможно. Я просто не могу понять, как это сделать. Примеры из NodeJS с использованием пакета azure-arm-resource nom:

// 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 / sites это будет что-то вроде ["config", "containerlogs", "diagnostics" ...] и т. д.


person Rhysk    schedule 03.10.2019    source источник
comment
Нужно ли ему работать в проекте NodeJS?   -  person jarrad_obrien    schedule 04.10.2019
comment
Идеально. Мой проект сейчас находится в Node и Typescript. Сказав это, если вы можете ответить, как перечислить вспомогательные ресурсы через REST, .NET или любой другой SDK, тогда я смогу понять это в Node.   -  person Rhysk    schedule 04.10.2019
comment
Будет ли полезно решение PowerShell?   -  person jarrad_obrien    schedule 04.10.2019
comment
Да, если он получит свойства, указанные в вопросе.   -  person Rhysk    schedule 05.10.2019


Ответы (1)


Это будет тот звонок, который вы ищете:

https://management.azure.com/subscriptions/xxx/providers/Microsoft.Web?api-version=2019-05-10

Он возвращает что-то вроде этого:

{
    "resourceTypes": [
        {
            "resourceType": "components",
            "locations": [ xxx ],
            "apiVersions": [ yyy ],
        },
        xxx,
        yyy
    ]
}

Поэтому вам нужно более внимательно изучить вывод вашего вызова. или просто выполните простой запрос на отдых и проанализируйте вывод. но, честно говоря, components() не меняйте так сильно, вы могли бы также жестко закодировать список.

person 4c74356b41    schedule 04.10.2019
comment
Это мой текущий звонок. Однако я не получаю «сайты / конфигурация», «сайты / диагностика» и т. Д. Как типы ресурсов. Проверил в обозревателе ресурсов, а также проверил, что не забываю перейти на nextPage или что-то в этом роде. По-прежнему нет игральных костей. Вы видите конфигурацию в Microsoft.Web? Хотя я хочу сделать это для всех ресурсов, на данный момент я могу проверить Microsoft.Web / sites / config. - person Rhysk; 04.10.2019
comment
config - это не тип ресурса, это просто свойство сайтов. доступные типы ресурсов: hostNameBindings, networkConfig, premieraddons, slots, slots / hostNameBindings, slots / networkConfig - person 4c74356b41; 04.10.2019
comment
Понял. Назовем ли мы их типами ресурсов, подтипами или свойствами: как мне получить их список? - person Rhysk; 04.10.2019
comment
ну, если это типы ресурсов - этот вызов api раскрывает их. если они являются свойствами - получите объект и проверьте (вы действительно не можете получить список свойств, вы можете проверить определение api, но оно может не перечислить все свойства). свойство =! resourceType. Тип ресурса - это ресурс, который зависит от родительского ресурса. свойство - это просто свойство ресурса, например его имя - person 4c74356b41; 04.10.2019
comment
Это я поняла. Я хочу получить эти свойства программно. Как я могу это сделать? - person Rhysk; 05.10.2019
comment
Вы можете использовать спецификации Swagger REST API - github.com/Azure/azure-rest-api -спецификации - person kwill; 05.10.2019