问题描述
如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
问题解答
由于直接获取到的虚拟机信息(Virtual Machines - Get)中,并不会包含虚拟机的公共IP信息,但是可以根据查询出的虚拟机网卡信息,来找到对应的关联的IP。
验证步骤:
1) 通过REST API获取虚拟机信息:
GET https://management.chinacloudapi.cn/{虚拟机Resource ID}?api-version=2021-03-01
注:中国区 Azure REST API的终结点为:https://management.chinacloudapi.cn
2) 从返回的消息体中,找到NetworkInterfaces中的ID信息
3) 根据第二步中的 NetworkInterfaces id,进行进一步查询Network Interfaces 信息:
GET https://management.chinacloudapi.cn/{networkInterfaces id}?api-version=2021-02-01&$expand=ipConfigurations/publicIPAddress,networkSecurityGroup
注:中国区 Azure REST API的终结点为:https://management.chinacloudapi.cn
4)从第三步的返回消息体中, properties 中的 ipAddress 就是需要的公共IP地址
参考资料
Virtual Machines - Get :https://docs.microsoft.com/en-us/rest/api/compute/virtual-machines/get
Network Interfaces - Get :https://docs.microsoft.com/en-us/rest/api/virtualnetwork/network-interfaces/get