Azure Function报SubscriptionClient无subscriptions属性错误咨询
问题根因
错误由azure-mgmt-subscription依赖包的版本不兼容导致:
- 你的
requirements.txt中未固定azure-mgmt-subscription的版本,近期函数重新安装依赖时自动拉取了v3.0.0及以上的新版本 - 该版本存在破坏性接口变更:
SubscriptionClient下的原subscriptions属性已重命名为subscription,因此调用sub_client.subscriptions时会抛出找不到属性的错误
修复方案
可任意选择以下一种方案修复:
方案1:调整代码适配新版本
直接修改遍历订阅的代码行,将sub_client.subscriptions.list()调整为sub_client.subscription.list()即可,修改后对应代码段:
print("Listing Subscriptions....") for sub in sub_client.subscription.list(): print("Sub_Name:", sub.display_name, "Environment:", env)
方案2:固定依赖版本兼容原有代码
在requirements.txt中给azure-mgmt-subscription指定v2.x的兼容版本,修改对应行:
azure-mgmt-subscription~=2.0.0
修改完成后重新部署函数触发依赖重新安装即可正常运行。
额外注意:现有代码中
sub_client的初始化放在try块内,如果初始化失败,后续调用sub_client时会抛出变量未定义的错误,建议将遍历订阅的逻辑也移入try块内部,避免未捕获的异常。
内容的提问来源于stack exchange,提问作者Matrix
相关产品推荐
相关产品推荐

