2016-11-21 5 views
0

私はResource Managerデプロイメントモデルを使用してVMをデプロイしました。リソースマネージャ展開と残りのAPIを使用してAzure VMを取得

Using rest api as described here私はVMについての情報を得ることができます。
私は電源状態、IPアドレス、およびマシンサイズを取得するために探しています。しかし、私は、3種類の呼び出し https://management.azure.com/subscriptions/ {SubscriptionId}/resourceGroups/{} ResourceGroup /providers/Microsoft.Compute/virtualmachines/ {サーバー名}

https://management.azure.com/subscriptions/ {SubscriptionId}/resourceGroups/{ResourceGroup} /プロバイダを必要とするすべての情報を取得します/Microsoft.Compute/virtualmachines/{ServerName}/InstanceView

https://management.azure.com/subscriptions/ {SubscriptionId}/resourceGroups/{} ResourceGroup /providers/Microsoft.Network/networkInterfaces/ {サーバー名} _NIC

すべて取得する方法はあります1コールでこの情報?

答えて

1

VMはResource Managerとともにデプロイされてから、さまざまなプロバイダ(ComputeおよびNetwork)の下に状態、IPアドレス、およびサイズ情報を記述します。おそらく、現在の呼び出しでVM情報とネットワーク情報を取得する方法がありません。

Microsoft Azure Management Client Library (Fluent)では、VM情報(電源状態、マシンサイズ、IPアドレス)を取得できます。実際には、REST API を2回と呼びます。 Azure認証については、how to create an authentication fileを参照してください。

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 management libraryを使用できます。 VM(役割)を取得するのは簡単です 電源状態、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; 
関連する問題