从资源对象 Azure SDK 获取资源组名称 Python
Get resource group name from resource object Azure SDK Python
只是想知道是否有一种简单的方法可以从 Azure 资源对象(即磁盘、快照对象)中获取资源组名称
目前我使用资源 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
下面是 python 的 Azure SDK:
https://docs.microsoft.com/en-us/python/api/overview/azure/?view=azure-python
我觉得你的需求需要具体到一个具体的服务,而且一般大范围可以具体到一个小范围,但是每个服务的具体对象好像都没有定义获取方法对应的资源组。我觉得你的想法可能实现不了。
看着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
标签,然后您可以直接从资源中获取它。
只是想知道是否有一种简单的方法可以从 Azure 资源对象(即磁盘、快照对象)中获取资源组名称
目前我使用资源 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
下面是 python 的 Azure SDK:
https://docs.microsoft.com/en-us/python/api/overview/azure/?view=azure-python
我觉得你的需求需要具体到一个具体的服务,而且一般大范围可以具体到一个小范围,但是每个服务的具体对象好像都没有定义获取方法对应的资源组。我觉得你的想法可能实现不了。
看着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
标签,然后您可以直接从资源中获取它。