python - 用于检查 VM 是否具有公共(public) IP 的 Azure Python API

标签 python azure azure-vm azure-rest-api

我的用例是:

  1. 确定虚拟机是否具有公共(public) IP(T/F)。
  2. (可选)打印公共(public) IP。

我一直在尝试提到的很多组合 herehere 。我的主要目标是确定虚拟机是否具有关联的公共(public) IP。似乎 azure python sdk 随着时间的推移而发生了变化,一些旧的解决方案不起作用。

我找到了一个简单的 azure cli 命令来完成这项工作,但我无法找到它相应的 api。

az vm list-ip-addresses --name testVM

是否有 API 调用可以提供相同的信息。如果没有,识别 azure 虚拟机是否具有公共(public) IP 的最佳方法是什么。

最佳答案

我尝试在我的环境中重现相同的结果并得到以下结果:

我有一个名为 srivm 的 Azure VM,其公共(public) IP 如下:

enter image description here

为了通过 Python API 获取此信息,我使用客户端 key 创建了一个服务主体,如下所示:

enter image description here

我尝试使用以下代码获取虚拟机的公共(public)IP地址并成功获取:

from azure.identity import ClientSecretCredential
from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.network import NetworkManagementClient
credential = ClientSecretCredential(
    tenant_id=<tenantID>,  #Your TenantID
    client_id=<appID>,     #Your AppID
    client_secret=<secret>    #Your Client Secret Value
)
compute_client = ComputeManagementClient(
    credential=credential,
    subscription_id=<subscriptionID> #Your SubscriptionID
)
network_client = NetworkManagementClient(
    credential=credential,
    subscription_id=<subscriptionID> #Your SubscriptionID
    )

rg = 'sri'     #Resource group name
publicip = 'xxxxxxxxx'   #Subnet name
result_get = network_client.public_ip_addresses.get(
       rg, publicip
    )
print(result_get.ip_address)

回应:

enter image description here

您可以尝试在您的环境中使用相同的代码来获取虚拟机的公共(public) IP

在运行代码之前,请确保安装所需的模块并将所需的角色分配给服务主体。

关于python - 用于检查 VM 是否具有公共(public) IP 的 Azure Python API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74311879/

相关文章:

azure - 使用 powershell 在 Azure VM 上执行 XMLA 脚本

azure - 如何自动启动Azure VM?

python - 如何在 python 中通过 SSLsocket 执行 https 请求

azure - 为什么 Fluentd Azure blob 插件在 kubernetes 中不起作用

jquery - Azure 托管的 WCF 服务导致错误 400

azure - Azure 暂存槽是用于开发和生产还是仅用于生产

python - 无法按请求登录网站

python - Kivy ListView excel 文件

python - 在 Python 中运行 Git clone 命令

database - 远程连接 Azure SQL Server 不显示所有数据库