简体   繁体   English

如何使用 Azure 资源管理 api 按资源类型和资源组获取资源列表

[英]How to get List of resources by resource type and resource group by using Azure Resource management apis

How to get list of resource for a Resource Group using Azure Resource Management API如何使用 Azure 资源管理 API 获取资源组的资源列表

I have install Microsoft.Azure.Management.ResourceManager.Fluent Nuget package The below script only give me only list of resource groups but not list of resources per resource group.我已经安装了 Microsoft.Azure.Management.ResourceManager.Fluent Nuget 包 下面的脚本只给我资源组列表,而不是每个资源组的资源列表。

        var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId, clientSecret, tenantId, AzureEnvironment.AzureGlobalCloud);      
        var azure = Azure.Configure().Authenticate(credentials).WithSubscription(subscriptionID);
        var resourecelist = azure.ResourceGroups.List().ToList();

I am looking for something similar to which is available in powershell我正在寻找类似于 powershell 中可用的东西

Get-AzureRmResource -ResourceGroupName $batchResourceGroup -ResourceType 'Microsoft.Batch/batchAccounts'

Please have a try to following code to get list of resources.请尝试以下代码以获取资源列表。 I test it on my side, it works correctly.我在我这边测试它,它工作正常。 We also could use the Resources - List By Resource Group Rest API to do that.我们也可以使用Resources - List By Resource Group Rest API 来做到这一点。

  var resouceManagementClient = new ResourceManagementClient(credentials) {SubscriptionId = subscriptionId};
  var resource = resouceManagementClient.ResourceGroups.ListResourcesAsync(resourceGroup,new ODataQuery<GenericResourceFilterInner>(x=>x.ResourceType == "Microsoft.Batch/batchAccounts")).Result;

在此处输入图片说明

The above answer is out-of-date, so here's my code snippet that works in Dec 2020.上面的答案已经过时,所以这是我在 2020 年 12 月使用的代码片段。

Azure.IAuthenticated _azure;
string _subscriptionId;
RestClient _restClient;

async Task Main()
{
   Connect();

   // Get resource groups
   var resourceManagementClient = new ResourceManagementClient(_restClient)
   {
      SubscriptionId = _subscriptionId
   };

   var resourceList = (await resourceManagementClient.ResourceGroups.ListAsync()).ToList().OrderBy(r => r.Name);
   // ...
}

void Connect()
{
   _subscriptionId = "XXX";
   var tenantId = "YYY";
   var clientId = "ZZZ";
   var secret = "QQQ";

   var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(
      clientId, secret, tenantId,
      AzureEnvironment.AzureGlobalCloud)
      .WithDefaultSubscription(_subscriptionId);

   _restClient = RestClient
      .Configure()
      .WithEnvironment(AzureEnvironment.AzureGlobalCloud)
      .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
      .WithCredentials(credentials)
      .Build();

   var creds = new AzureCredentialsFactory().FromServicePrincipal(
      clientId, secret, tenantId,
      AzureEnvironment.AzureGlobalCloud
      );
   _azure = Azure.Authenticate(creds);
}

The usings/imports/NuGet.使用/导入/NuGet。 (you do not need all of these...): (你不需要所有这些......):

Microsoft.Azure.Management.AppService.Fluent
Microsoft.Azure.Management.AppService.Fluent.Models
Microsoft.Azure.Management.Fluent
Microsoft.Azure.Management.ResourceManager.Fluent
Microsoft.Azure.Management.ResourceManager.Fluent.Authentication
Microsoft.Azure.Management.ResourceManager.Fluent.Core
Microsoft.IdentityModel.Clients.ActiveDirectory
Microsoft.Rest
Microsoft.ServiceBus.Messaging
System.Threading.Tasks
Microsoft.Rest.Azure

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM