Как получить публичный IP-адрес с помощью Azure SDK? - PullRequest
0 голосов
/ 18 декабря 2018

Я использую Microsoft.Azure.Compute.Fluent sdk, чтобы вывести список всех своих виртуальных машин, и он работает нормально, за исключением того, что я не могу получить публичный 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-адрес?

1 Ответ

0 голосов
/ 27 декабря 2018

Пожалуйста, исправьте меня, если я вас неправильно понял: я не могу найти sdk Microsoft.Azure.Compute.Fluent (скриншот, как показано ниже):

enter image description here

Поэтому я использую этот 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);
            }
        }

    }
}

Результат теста, как показано ниже:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...