繁体   English   中英

如何使用 Azure Mgmt SDK fluent 获取空资源组列表

[英]How to get list of Empty Resource Groups by using of Azure Mgmt SDK fluent

我正在使用https://www.nuget.org/packages/Microsoft.Azure.Management.Fluent 以编程方式获取 Azure中的资源(C# .NET-Core .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 流利使用 do.netcore,C#.net 获取空资源组列表 没有任何 azure 资源的资源组

请就以上建议。

谢谢,

没有内置方法,需要自己写代码检查某个资源组中是否有资源。

这是示例代码,它可以列出我这边所有的空资源组:

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();
        }
    }
}

暂无
暂无

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

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