Получить виртуальную машину 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;