Azure Python SDK中与`az account set`等效的操作是什么?
Azure Python SDK 对应
az account set 的实现方式 Azure Python SDK没有类似Azure CLI全局设置当前操作订阅的统一命令,等效的实现逻辑是:在初始化任意Azure服务客户端时,直接传入你要操作的订阅ID即可,效果和az account set --subscription $desiredSub选定订阅后执行操作完全一致。
实现示例
首先安装依赖包:pip install azure-identity azure-mgmt-resource azure-mgmt-subscription
基础用法(直接指定目标订阅)
from azure.identity import DefaultAzureCredential from azure.mgmt.resource import ResourceManagementClient # 替换为你要使用的目标订阅ID DESIRED_SUBSCRIPTION_ID = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 初始化身份凭证,默认会读取当前环境已登录的Azure身份,和az login后的凭证共用 credential = DefaultAzureCredential() # 初始化服务客户端时传入订阅ID,即完成目标订阅的选定 resource_client = ResourceManagementClient( credential=credential, subscription_id=DESIRED_SUBSCRIPTION_ID ) # 后续使用resource_client执行的所有操作都会作用在选定的订阅上
扩展用法(先枚举所有可访问订阅再选择)
如果你需要先获取当前账号下的所有可用订阅再做选择,可以用订阅管理客户端实现:
from azure.mgmt.subscription import SubscriptionClient subscription_client = SubscriptionClient(credential=credential) # 遍历所有可访问的订阅 for sub in subscription_client.subscriptions.list(): print(f"订阅名称:{sub.display_name},订阅ID:{sub.subscription_id}") # 按需添加筛选逻辑选中目标订阅 if sub.display_name == "我的测试订阅": target_sub_id = sub.subscription_id
注意事项
- 不同服务客户端可以独立指定不同的订阅ID,支持同时操作多个订阅,比CLI全局切换订阅的方式更灵活
- 本地已通过
az login登录过Azure账号的场景下,DefaultAzureCredential会自动读取CLI的登录凭证,不需要额外配置身份信息,和bash中使用az命令的身份上下文完全一致
内容的提问来源于stack exchange,提问作者SeaDude
相关产品推荐
相关产品推荐

