Получить IP виртуальной машины Azure с помощью SDK
У меня виртуальная машина включена и работает на лазурном. Я знаю его имя, но хочу получить его IP-адрес программно, используя новый C# SDK и избегая REST API. Как я могу это сделать?
2 ответа
Попробуй это:
string subId = "deadbeef-beef-beef-beef-beefbeefbeef";
string resourceGroup = "SORG01";
string vmName = "SORG01-BOX01";
using (var client = new ComputeManagementClient(credentials))
{
client.SubscriptionId = subId;
VirtualMachine vm = VirtualMachinesOperationsExtensions.Get(client.VirtualMachines, resourceGroup, vmName);
networkName = vm.NetworkProfile.NetworkInterfaces[0].Id.Split('/').Last();
}
using (var client = new NetworkManagementClient(credentials))
{
client.SubscriptionId = subId;
var network = NetworkInterfacesOperationsExtensions.Get(client.NetworkInterfaces, resourceGroup, vmName);
string ip = network.IpConfigurations[0].PrivateIPAddress;
}
Чтобы иметь эти классы, вам нужно установить из nuget:
- Microsoft.Azure.Management.Compute
- Microsoft.Azure.Management.Compute.Models
- Microsoft.Azure.Management.Network
Обратите внимание, что вам нужно будет выбрать "Включить предварительный выпуск" в окне поиска Nuget, чтобы найти эти пакеты. credentials
это Microsoft.Rest.TokenCredentials
объект, который вы приобретаете таким образом:
var authContext = new AuthenticationContext("https://login.windows.net/{YourTenantId}");
var credential = new ClientCredential("{YourAppID}", "{YourAppSecret}");
var result = authContext.AcquireTokenAsync("https://management.core.windows.net/", credential);
result.Wait();
if (result.Result == null)
throw new AuthenticationException("Failed to obtain the JWT token");
credentials = new TokenCredentials(result.Result.AccessToken);
Самый простой способ получить общедоступный IP-адрес виртуальной машины Azure - это
{} _VirtualMachineInstance.GetPrimaryPublicIPAddress() IP-адрес.
Очень хорошее объяснение этого вопроса вы можете найти здесь - ответ Тома Сан:
Получить виртуальную машину Azure с помощью развертывания менеджера ресурсов и API отдыха