如何使用Azure SDK进行Python检索Azure资源列表
#python #azure #howto #pandas

介绍

Azure SDK for Python [1]是连接到Azure REST API并提取信息的众多方法之一。这是一个有关如何从Azure订阅中检索所有资源的示例,将数据放入Pandas DataFrame [2]并使用matplotlib [3]。

绘制简单的饼图。

导入库

我们需要导入以下库。

# Import libraries
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
import pandas as pd
import matplotlib

获得凭据并获得管理对象

使用AzureCliCredential()时,Python将使用当前登录的用户的Azure CLI上下文来执行查询。

# Acquire credential
credential = AzureCliCredential()

# Define Scope
subscription_id = "subscription_id"

# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)

创建和填充字典

通过资源客户端使用resource_client.resources.list()将在给定订阅中使用所有Azure资源检索一个可相互的对象。现在,我们可以用资源填充Python词典,并将它们添加到Pandas DataFrame中。

resources = resource_client.resources.list()
dict = []
for resource in resources:
    dict.append(resource.as_dict())

从字典创建数据框

df = pd.DataFrame.from_dict(dict)

仅根据资源类型计数选择前10行

type_df = df['type'].value_counts()
type_df_top = type_df.head(10)

最后绘制饼图

plot = type_df_top.plot.pie(figsize=(10, 10), autopct= lambda x: '{:.0f}'.format(x*type_df_top.sum()/100))

...可能看起来像这些线。
Pie Chart

概括

这篇简短的文章已经在使用Azure SDK为Python时划过了表面,因为它允许将Python的功率与Azure Rest API的功能相结合。
我们根据给定上下文提取了Azure资源的列表,将它们添加到Pandas DataFrame中,并根据前10个资源计数绘制了一个简单的饼图。

参考