如何解决从资源对象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 举报,一经查实,本站将立刻删除。