2013-05-22 13 views
10

Attualmente sto tentando di ottenere un elenco di tutte le macchine virtuali che sono in esecuzione con una sottoscrizione di Windows Azure a livello di codice. Per questo, sto tentando di utilizzare l'API di Azure REST (https://management.core.windows.net) e non utilizzare i cmdlet di power-shell.Elenca le macchine virtuali di Azure tramite l'API REST

Utilizzo dei cmdlet È possibile eseguire 'Get-AzureVM' e ottenere un elenco di tutte le VM con NomeServizio, Nome e Stato senza modifiche. Il problema è che non riesco a trovare da nessuna parte nella documentazione di come elencare le VM tramite l'API.

Ho esaminato le varie API di Azure REST ma non sono riuscito a trovare nulla. La documentazione per VM REST API non mostra o fornisce una funzione di elenco.

Mi mancano i fondamenti da qualche parte?

// Create the request. 
      // https://management.core.windows.net/<subscription-id>/services/hostedservices 
      requestUri = new Uri("https://management.core.windows.net/" 
           + subscriptionId 
           + "/services/" 
           + operation); 

Questo è quello che sto utilizzando per la base della richiesta. Posso ottenere un elenco di servizi ospitati ma non le macchine virtuali.

+0

È possibile immergersi nei cmdlet di PowerShell e vedere esattamente come lo stanno facendo. – JoeBrockhaus

risposta

7

È necessario ottenere un elenco di tutti i servizi cloud (servizi ospitati) e quindi le proprietà di distribuzione per ciascuno. Cerca la distribuzione nell'ambiente/slot di produzione. Quindi cerca un tipo di ruolo di "PersistentVMRole".

Le VM sono in realtà solo un tipo di servizio cloud, insieme a ruoli Web e di lavoro. Il portale di gestione di Windows Azure e i cmdlet di PowerShell ne consentono l'estrazione per semplificare la comprensione e la visualizzazione delle informazioni.

+0

A destra: dare un'occhiata a "Ottieni proprietà servizio in hosting" - documentazione [qui] (http://msdn.microsoft.com/en-us/library/windowsazure/ee460806.aspx). –

+0

In realtà, quando elenco tutti i servizi, i VM non sono elencati. Solo gli elementi visualizzati in "Servizi cloud" nel pannello di controllo basato sul Web. Hanno nomi distinti, quindi sono sicuro di questo. – maximumgeek

+0

Qualsiasi idea sul motivo per cui non hanno fornito l'API diretta per ottenere la VM perché per l'installazione con più di 500 servizi cloud ci vorrà molto tempo per ottenere l'elenco VM. –

2

Seguire questi passaggi per macchine virtuali sfogliare:

  1. Elenco HostedServices utilizzando il seguente ListHostedServices
  2. Per ogni servizio in da quanto sopra, a) GetDeployment da Environment (produzione o messa in scena). O b) Ottieni distribuzione per nome.
  3. In entrambi i casi, ottenere il valore per Deployment.getRoleInstanceList(). GetRoleInstance(). GetInstanceName().
Problemi correlati