Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 您是否可以检查Azure CLI在引擎盖下进行了哪些API调用?_Python 3.x_Azure_Azure Cli - Fatal编程技术网

Python 3.x 您是否可以检查Azure CLI在引擎盖下进行了哪些API调用?

Python 3.x 您是否可以检查Azure CLI在引擎盖下进行了哪些API调用?,python-3.x,azure,azure-cli,Python 3.x,Azure,Azure Cli,我正在使用Python SDK for Azure,但我可以看到文档中缺少适当的信息和示例。我知道Azure CLI构建在Azure的Python SDK之上,因此我想知道是否有任何方法可以让您知道在执行例如:az vm show时Python函数在调用什么 通过这种方式,我可以轻松地使用Azure CLI构建命令并将其转换为Python代码 谢谢大家! 这是我的解决方法: from azure.common.credentials import ServicePrincipalCredenti

我正在使用Python SDK for Azure,但我可以看到文档中缺少适当的信息和示例。我知道Azure CLI构建在Azure的Python SDK之上,因此我想知道是否有任何方法可以让您知道在执行例如:az vm show时Python函数在调用什么

通过这种方式,我可以轻松地使用Azure CLI构建命令并将其转换为Python代码

谢谢大家!

这是我的解决方法:

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.compute import ComputeManagementClient

Subscription_Id = "xxxxxxx"
Tenant_Id = "xxxxxxx"
Client_Id = "xxxxxxx"
Secret = "xxxxxxx"

credential = ServicePrincipalCredentials(
        client_id=Client_Id,
        secret=Secret,
        tenant=Tenant_Id
        )

client = ComputeManagementClient(credential, Subscription_Id)
vmDetails = client.virtual_machines.get(resource_group_name='xxxxxxx', vm_name='xxxxxxx')
print(vmDetails)

您可以看到Python进程发布的底层API

要做到这一点,您可以使用fiddler或任何能够捕获流量的客户端应用程序

对于Fiddler,您可以从

您将启用解密HTTPS流量,因为通过CLI到Azure的所有流量都是通过HTTPS完成的。有关更多信息,请参阅

运行中的Fiddler现在将充当代理并捕获所有网络流量

但是,您将无法在代理上安装Fiddler的情况下直接运行Azure CLI。您必须将Fiddler的证书添加到CLI的证书中

小提琴手证书可在以下网址找到:http://localhost:8888. 您必须导出证书并将其转换为PEM格式。导出的格式为.CRT格式

您可以在本地执行上述操作,也可以使用联机工具执行此示例:

获得PEM证书后-将此证书的内容附加到CLI使用的证书文件中:

C:\ProgramFilesx86\Microsoft SDK\Azure\CLI2\Lib\site packages\certifi\cacert.pem

现在,您将能够拦截python进程发出的流量


有关这方面的更多信息已记录在案

嗨,Pamela,谢谢你的回答,但它并没有为我的问题提供真正的答案。@drycon43没有将CLI直接转换为Python的方法。您需要找到Python的azure函数,这显示了azure虚拟机库。有关更多参考信息,请参阅。@drycon43-Python进程使用必要的头和请求体发出API请求。API端点将是核心,也是附加值。上述方法将帮助您获得API。
<Original cacert.pem>

-----BEGIN CERTIFICATE-----
<Your proxy's certificate here>
-----END CERTIFICATE-----