如何使用 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 以编程方式(C# .NET-Core Web 应用程序)在 Azure 中获取资源,并尝试通过提供如下服务主体来获取资源信息...
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 获取空资源组列表?没有任何 Azure 资源的资源组
以上请指教
谢谢,
没有built-in方法,需要写代码检查资源组中是否有资源
这里是示例代码,可以列出我这边所有的空资源组:
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();
}
}
}
我正在使用 https://www.nuget.org/packages/Microsoft.Azure.Management.Fluent 以编程方式(C# .NET-Core Web 应用程序)在 Azure 中获取资源,并尝试通过提供如下服务主体来获取资源信息...
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 获取空资源组列表?没有任何 Azure 资源的资源组
以上请指教
谢谢,
没有built-in方法,需要写代码检查资源组中是否有资源
这里是示例代码,可以列出我这边所有的空资源组:
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();
}
}
}