如何使用 azure sdk 获取 vm 公共 IP?

我使用Microsoft.Azure.Compute.Fluentsdk 列出了我所有的虚拟机,它工作正常,除了我无法获取公共 IP 地址:


    IVirtualMachines _client = azure.VirtualMachines; 

    var list = await _client.ListAsync();


    foreach (var instance in list)

    {

        var name = instance.Name;

        var ip = instance.GetPrimaryPublicIPAddress().IPAddress;

        //ip = null here;

    }

好吧,我尝试了其他东西,但总是将公共 ip 设为空。


如何正确检索公共 IP?


UYOU
浏览 112回答 1
1回答

凤凰求蛊

如果我误解了你,请纠正我:我找不到 sdk Microsoft.Azure.Compute.Fluent(截图如下):所以我改用这个sdk Microsoft.Azure.Management.Fluent(官方文档也使用它)。并且可以在我身边获取ip,代码如下:using Microsoft.Azure.Management.Compute.Fluent;using Microsoft.Azure.Management.Fluent;using Microsoft.Azure.Management.ResourceManager.Fluent;using Microsoft.Azure.Management.ResourceManager.Fluent.Core;using System;using System.Threading.Tasks;namespace myVMDotnetProject{    class Program    {        static void Main(string[] args)        {            GetVMInfo();            Console.WriteLine("okok");            Console.ReadLine();        }        static async Task  GetVMInfo()        {            var credentials = SdkContext.AzureCredentialsFactory.FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION", EnvironmentVariableTarget.User));            var azure = Azure                .Configure()                .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)                .Authenticate(credentials)                .WithDefaultSubscription();            IVirtualMachines _client = azure.VirtualMachines;            var list = await _client.ListAsync();            foreach (var instance in list)            {                var name = instance.Name;                var ip = instance.GetPrimaryPublicIPAddress().IPAddress;                Console.WriteLine("name: " + name + ", ip: " + ip);            }        }    }}测试结果如下:
打开App,查看更多内容
随时随地看视频慕课网APP