模块 'azure.common.credentials' 没有属性 'signed_session'
module 'azure.common.credentials' has no attribute 'signed_session'
我需要帮助来理解我从 Python.
的 Azure SDK 获得的异常
所以我尝试使用以下代码从 Azure 获取 public 个 IP 列表:
import azure.common.credentials as creds
from azure.mgmt.subscription import SubscriptionClient
from azure.mgmt.network.v2019_02_01 import NetworkManagementClient
credentials = creds.get_azure_cli_credentials(resource=None, with_tenant=False)[0]
sub_client = SubscriptionClient(credentials)
subs = [sub.as_dict() for sub in sub_client.subscriptions.list()]
for s in subs:
sub_id = s['id'][15:]
network_client = NetworkManagementClient(creds, sub_id)
pub_ips = network_client.public_ip_addresses.list_all()
print("done")
for ip in pub_ips:
print(ip.ip_address)
这是输出:
Traceback (most recent call last):
done
File "/Users/user/repo/azure_public_ip.py", line 18, in <module>
for ip in pub_ips:
File "/usr/local/lib/python3.7/site-packages/msrest/paging.py", line 143, in __next__
self.advance_page()
File "/usr/local/lib/python3.7/site-packages/msrest/paging.py", line 129, in advance_page
self._response = self._get_next(self.next_link)
File "/usr/local/lib/python3.7/site-packages/azure/mgmt/network/v2019_02_01/operations/public_ip_addresses_operations.py", line 445, in internal_paging
response = self._client.send(request, stream=False, **operation_config)
File "/usr/local/lib/python3.7/site-packages/msrest/service_client.py", line 336, in send
pipeline_response = self.config.pipeline.run(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/msrest/pipeline/__init__.py", line 197, in run
return first_node.send(pipeline_request, **kwargs) # type: ignore
File "/usr/local/lib/python3.7/site-packages/msrest/pipeline/__init__.py", line 150, in send
response = self.next.send(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/msrest/pipeline/requests.py", line 65, in send
self._creds.signed_session(session)
AttributeError: module 'azure.common.credentials' has no attribute 'signed_session'
如您所见,打印了 "done" 消息,因此在我尝试遍历 public IP 列表之前不会发生异常。我对这个错误感到困惑,因为它听起来好像凭据有问题。但是如果请求public个ip列表没有异常,怎么会这样呢?如果我删除最后两行,也不例外。
这一行:
network_client = NetworkManagementClient(creds, sub_id)
应该是
network_client = NetworkManagementClient(credentials, sub_id)
现在您正在传递您在第 1 行导入的模块
我需要帮助来理解我从 Python.
的 Azure SDK 获得的异常所以我尝试使用以下代码从 Azure 获取 public 个 IP 列表:
import azure.common.credentials as creds
from azure.mgmt.subscription import SubscriptionClient
from azure.mgmt.network.v2019_02_01 import NetworkManagementClient
credentials = creds.get_azure_cli_credentials(resource=None, with_tenant=False)[0]
sub_client = SubscriptionClient(credentials)
subs = [sub.as_dict() for sub in sub_client.subscriptions.list()]
for s in subs:
sub_id = s['id'][15:]
network_client = NetworkManagementClient(creds, sub_id)
pub_ips = network_client.public_ip_addresses.list_all()
print("done")
for ip in pub_ips:
print(ip.ip_address)
这是输出:
Traceback (most recent call last):
done
File "/Users/user/repo/azure_public_ip.py", line 18, in <module>
for ip in pub_ips:
File "/usr/local/lib/python3.7/site-packages/msrest/paging.py", line 143, in __next__
self.advance_page()
File "/usr/local/lib/python3.7/site-packages/msrest/paging.py", line 129, in advance_page
self._response = self._get_next(self.next_link)
File "/usr/local/lib/python3.7/site-packages/azure/mgmt/network/v2019_02_01/operations/public_ip_addresses_operations.py", line 445, in internal_paging
response = self._client.send(request, stream=False, **operation_config)
File "/usr/local/lib/python3.7/site-packages/msrest/service_client.py", line 336, in send
pipeline_response = self.config.pipeline.run(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/msrest/pipeline/__init__.py", line 197, in run
return first_node.send(pipeline_request, **kwargs) # type: ignore
File "/usr/local/lib/python3.7/site-packages/msrest/pipeline/__init__.py", line 150, in send
response = self.next.send(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/msrest/pipeline/requests.py", line 65, in send
self._creds.signed_session(session)
AttributeError: module 'azure.common.credentials' has no attribute 'signed_session'
如您所见,打印了 "done" 消息,因此在我尝试遍历 public IP 列表之前不会发生异常。我对这个错误感到困惑,因为它听起来好像凭据有问题。但是如果请求public个ip列表没有异常,怎么会这样呢?如果我删除最后两行,也不例外。
这一行:
network_client = NetworkManagementClient(creds, sub_id)
应该是
network_client = NetworkManagementClient(credentials, sub_id)
现在您正在传递您在第 1 行导入的模块