微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从资源对象Azure SDK Python获取资源组名称

如何解决从资源对象Azure SDK Python获取资源组名称

只是想知道是否有一种简单的方法可以从Azure资源对象(例如磁盘,Snapshot对象)获取资源组名称

当前,我使用资源URI并从中获取资源组:

# ID example: '/subscriptions/123/resourceGroups/MyRG/providers/Microsoft.Compute/disks/disk-a
resource_group = [value for value in str(disk.id).split("/") if value][3]

输出

>> MyRG

我似乎看不到一种做某事的方法

disk.resource_group

解决方法

看着MSDN,我不相信有一个resource_group属性。

我通常要做的是创建一个方法(类似于您所做的)以从资源ID中获取资源组:

def get_resource_group_from_id(resource_id):
    return resource_id.lstrip("/").split("/")[3]

然后我只在需要获取资源组的地方使用此方法:

from azure.mgmt.compute import ComputeManagementClient
from azure.common.client_factory import get_client_from_cli_profile

compute_client = get_client_from_cli_profile(ComputeManagementClient)

for disk in compute_client.disks.list():
    resource_group = get_resource_group_from_id(resource_id=disk.id)

但是,我不喜欢这个,因为我习惯于直接从资源中获取它。

您可以使用azure-sdk-for-python提出一个功能请求,以将该属性包含在对象中。 Azure PowerShell和Azure CLI包含此属性,所以我看不到为什么Azure Python SDK不应该包含它。

另一种选择是包含一个resource_group标签,然后您可以直接从资源中获取它。

,

以下是适用于python的Azure SDK:

https://docs.microsoft.com/en-us/python/api/overview/azure/?view=azure-python

我认为您的需求需要特定于特定的服务,并且通常,较大的范围可以特定于较小的范围,但是每种服务的特定对象似乎都没有定义获取相应资源的方法组。我认为您的想法可能不会实现。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。