Как сказали бы англичане, Горе!
TL; DR
Попробуйте:
using Microsoft.Azure.Management.ResourceManager.Fluent;
...
var rm = ResourceManager.
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithDefaultSubscription();
var resources= rm.GenericResources.List();
foreach(IGenericResource res in resources)
{
....
}
TL; DR 2
Некоторые комментарии указывают на метод расширения ResourceOperationsExtensions.List . Для этого требуется экземпляр IResourceOpearations
. Это доступно через IResourceManagementClient.Resources . Это доступно через свойство ResourceManager.Inner :
var rmOps=rm.Inner.Resources;
var resources = rmOps.List(someODataQuery);
Длинная версия
Управление Azure работает путем предоставления интерфейсов REST. В конце концов, и Azure SDK, и командлеты Powershell будут вызывать этот интерфейс REST. Вы можете использовать Fiddler
или другой отладочный прокси для захвата и повторного использования
Командлеты Powershell реализованы поверх SDK, что означает, что вы можете посмотреть на сам исходный код .
В командлете используется метод ResourceManagerSdkClient класса ListResources с запросом OData, сгенерированным из его параметров:
result = this.ResourceManagerSdkClient.ListResources(odataQuery);
К сожалению, это не помогает, поскольку командлеты используют свои собственные низкоуровневые абстракции, в то время как библиотеки Azure RM используют различные абстракции и интерфейсы. ListResources
говорит нам, что нам нужно запросить GenericResource.
Репозиторий Azure Resource Manager размещен на Github. Документация не показывает, как добраться до ResourceManager . Поиск в самом репо показывает, как ResourceManager
используется в тестах .
ResourceManager.GenericResources предоставляет доступ к тем же универсальным ресурсам, которые использует команда Powershell. Тип этого свойства IGenericResources , который, в свою очередь, реализует ISupportsListing , который дает нам доступ к List
Документы не дают понять, реализованы ли эти интерфейсы явно. Код может нуждаться в явном приведении.
IGenericResources
также реализует ISupportsListingByResourceGroup
и ISupportsListingInResourceGroupByTag
, которые можно использовать для поиска по группам ресурсов и тегам.
Поиск в Google для ResourceManager.GenericResources
или GenericResources.List()
и т. Д. Не дает релевантных результатов. Термины слишком ... общие.
Я думаю, что сейчас сделаю перерыв.