微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SubscriptionNotFound找不到订阅“ subscriptions”

如何解决SubscriptionNotFound找不到订阅“ subscriptions”

我正在列出所有可用的订阅调用subscription.id时返回:

/subscriptions/<subscription-id>

现在,如果我尝试直接将其传递给Azure计算库,它将不会接受它作为ID。

compute_client = ComputeManagementClient(credential=credentials,subscription_id=subscription.id)

>> (SubscriptionNotFound) The subscription 'subscriptions' Could not be found.

这意味着我必须手动清理ID

subscription.id.replace("/subscription/","")

这是毛病。有内置的方法获取ID吗?

解决方法

不幸的是,没有没有内置方法可以通过python获取订阅ID。

您可以使用(Get-AzSubscription).SubscriptionId之类的Power Shell命令。

通过calling power shell command from Python

子过程模块是Python标准库中的模块。它 由可用于创建新流程的调用方法组成 并在那里接收返回值和错误代码/

要运行powershell命令,只需将命令名称传递给调用 方法作为字符串。

import subprocess 
subprocess.call("(Get-AzSubscription).SubscriptionId")
,

这是subscription_id属性: https://docs.microsoft.com/en-us/python/api/azure-mgmt-resource/azure.mgmt.resource.subscriptions.v2019_11_01.models.subscription?view=azure-python

from azure.mgmt.resource.subscriptions import SubscriptionClient
client = SubscriptionClient(credential)

for sub in client.subscriptions.list():
     print(sub.subscription_id)

(免责声明,我在Azure SDK团队的MS上工作)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。