如何使用python列出应用于Azure资源组的锁

问题描述

使用python azure sdk,我正在对资源组应用一些锁,这些锁将继承到其中的单个资源。而且,我正在将单个锁应用于组内的资源。当我将vm name作为参数传递时,我将仅对链接到VM的资源应用更多锁定。 现在,无论如何,在脚本末尾是否列出了脚本所应用的锁的类型?通过检查先前和当前状态或任何适用的逻辑。无法从azure sdk文档中获取此信息。

解决方法

SDK允许您使用list_at_resource_group_level方法列出资源组的所有管理锁。

from azure.common.client_factory import get_client_from_auth_file
from azure.mgmt.resource import ResourceManagementClient,ManagementLockClient

# get_client_from_auth_file relies on the AZURE_AUTH_LOCATION environment variable
resource_client = get_client_from_auth_file(ResourceManagementClient)
management_lock_client = get_client_from_auth_file(ManagementLockClient)
    
def list_resource_group_locks():
    # Can optionally iterate across all RGs in the Subscription
    for rg in resource_client.resource_groups.list():
        for lock in management_lock_client.management_locks.list_at_resource_group_level(rg.name):
            print(f"\nResource Group: {rg.name}\nLock name: {lock.name}\nLock Type: {lock.level}")

# List all resource groups in the Subscription with applied locks
list_resource_group_locks()

Output:
Resource Group: rg-1
Lock name: testupdate
Lock Type: ReadOnly

Resource Group: rg-1
Lock name: testdelete
Lock Type: CanNotDelete

ManagementLocksOperations类的其他变体/方法可以在here中找到。