Как получить список пустых групп ресурсов с помощью Azure Mgmt SDK fluent - PullRequest
1 голос
/ 04 августа 2020

Я использую https://www.nuget.org/packages/Microsoft.Azure.Management.Fluent для получения ресурсов в Azure с помощью программного (C#. NET -Core Web-приложения) и пытался получить информацию о ресурсах, указав принципалов службы, как показано ниже. ..

 string subscriptionId="XXX"; 
       AzureCredentials cred = new 
                 AzureCredentialsFactory().FromServicePrincipal(UIConstants.ClientID, 
                 UIConstants.Secret, UIConstants.Tenant,AzureEnvironment.AzureGlobalCloud);                      
                
        var azure = Azure.Configure()
                         .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic) 
                         .Authenticate(cred) 
                         .WithSubscription(subscriptionId);

Как получить список пустых групп ресурсов с помощью Azure Mgmt SDK fluent with dotnetcore, C#. net ? Menas Resource Groups, которые не содержат никаких azure ресурсов

Pls, совет по вышеизложенному.

Спасибо,

1 Ответ

1 голос
/ 05 августа 2020

Нет встроенного метода, вам нужно написать код, чтобы проверить, есть ли какие-либо ресурсы в группе ресурсов.

Вот пример кода, и он может перечислить все пустые группы ресурсов по адресу моя сторона:

using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent.Authentication;
using Microsoft.Azure.Management.ResourceManager.Fluent.Core;
using System;

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            string subscriptionId = "xxx";
            string clientId = "xxx";
            string tenantId = "xxx";
            string clientSecret = "xxx";

            AzureCredentials cred = new AzureCredentialsFactory()
                .FromServicePrincipal(
                clientId,
                clientSecret,
                tenantId,
                AzureEnvironment.AzureGlobalCloud
                );

            var azure = Azure.Configure()
                             .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
                             .Authenticate(cred)
                             .WithSubscription(subscriptionId);


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

            ResourceManagementClient client = new ResourceManagementClient(restClient);
            client.SubscriptionId = subscriptionId;          

            //list all resource groups
            var rgs = azure.ResourceGroups.List();

            foreach (var r in rgs)
            {              
                
                var resources = client.Resources.ListByResourceGroupAsync(r.Name).Result;

                //initiate a resource number as 0
                int number_of_resources = 0;

                //check if there are any resources in the resource group
                foreach (var resource in resources)
                {
                    number_of_resources++;
                    break;                   
                }

                //if the resources number is 0 in the resource group, then print out the empty resource group name
                if (number_of_resources == 0)
                {
                    Console.WriteLine($"the resource group: {r.Name} is empty");
                }
            }

            Console.WriteLine("**completed**");
            Console.ReadLine();
        }
    }
}
...