如何使用Python锁定Azure资源组中的所有资源

时间:2020-08-16 01:39:19

标签: python azure

我正在使用azure SDK python锁定特定资源组中的所有资源。我无法找到相同的适当帮助/文档。

azure-mgmt-resource软件包中没有与此相关的方法

有人可以建议吗?

1 个答案:

答案 0 :(得分:0)

您将需要实例化一个ManagementLockClient对象,然后调用create_or_update_at_resource_group_level方法以在资源组级别创建CanNotDelete锁。

我们可以在资源组级别应用锁,因为所有子资源都从父作用域继承相同的锁。

演示

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

# Authenticate with Azure CLI credentials
client = get_client_from_cli_profile(ResourceManagementClient)

resource_group_name = "myResourceGroup"

# Ensure resource group exists
if client.resource_groups.check_existence(resource_group_name):

    # Create lock client to do lock operations
    lock_client = get_client_from_cli_profile(ManagementLockClient)

    # Add delete lock at resource group level
    lock_client.management_locks.create_or_update_at_resource_group_level(
        resource_group_name=resource_group_name,
        lock_name="DeleteLock",
        parameters={"level": "CanNotDelete"},
    )
else:
    print(
        f"Resource group {resource_group_name} does not exist in your subscription!"
    )