Получить виртуальную машину Azure с помощью развертывания менеджера ресурсов и API отдыха

Я развернул виртуальную машину с помощью модели развертывания Resource Manager.

Используя остальные API, как описано здесь, я могу получить информацию о виртуальной машине.
Я ищу, чтобы узнать состояние питания, IP-адрес и размер машины. Однако, чтобы получить всю эту информацию, мне нужно 3 разных вызова https://management.azure.com/subscriptions/{SubscriptionId} / resourceGroups / {ResourceGroup} /providers/Microsoft.Compute/virtualmachines/ {ServerName}

https://management.azure.com/subscriptions/{SubscriptionId} / resourceGroups / {ResourceGroup} /providers/Microsoft.Compute/virtualmachines/ {Имя_сервера} / InstanceView

https://management.azure.com/subscriptions/{SubscriptionId} / resourceGroups / {ResourceGroup} /providers/Microsoft.Network/networkInterfaces/ {ServerName} _NIC

Есть ли способ получить всю эту информацию за 1 звонок?

1 ответ

Решение

Поскольку виртуальная машина развернута с помощью Resource Manager, укажите состояние, IP-адрес и размер информации у разных поставщиков (Compute и Network). Возможно, в настоящее время у него нет возможности получить информацию о виртуальной машине и сети во время разговора.

С помощью клиентской библиотеки Microsoft Azure Management (Fluent) мы можем получить информацию о виртуальной машине (состояние питания, размер компьютера, IP-адрес). На самом деле, он вызывает REST API дважды. Об аутентификации Azure, пожалуйста, обратитесь к тому, как создать файл аутентификации.

AzureCredentials credentials = AzureCredentials.FromFile("Full path of your AzureAuthFile");
                var azure = Azure
                    .Configure()
                    .WithLogLevel(HttpLoggingDelegatingHandler.Level.BASIC)
                    .Authenticate(credentials)
                    .WithDefaultSubscription();
  foreach (var virtualMachine in azure.VirtualMachines.ListByGroup("Your Resource Group Name").Where(virtualMachine => virtualMachine.ComputerName.Equals("vmName")))
                    {
                        var state = virtualMachine.PowerState;
                        var size = virtualMachine.Size;
                        var ip = virtualMachine.GetPrimaryPublicIpAddress().IpAddress; //call Rest API again
                    }

Если он развернут под CloudService, то мы можем использовать библиотеку управления Windows Azure. Информация о состоянии электропитания, IP-адресе и размере машины легко получить.

var certificate = new CertificateCloudCredentials(subscriptionId, x509Certificate);
var computeManagementClient = new ComputeManagementClient(certificate);
var deployments = await computeManagementClient.Deployments.GetByNameAsync (hostedServiceName,"Your Deployment Name");
var state = deployments.RoleInstances.First().PowerState;
var ipAddress = deployments.RoleInstances.First().IPAddress;
var size = deployments.RoleInstances.First().InstanceSize;
Другие вопросы по тегам