2013-05-22 23 views
10

Tôi hiện đang cố gắng lấy danh sách tất cả các Máy ảo mà tôi đã chạy trong đăng ký Windows Azure theo lập trình. Đối với điều này, tôi đang cố gắng sử dụng Azure REST API (https://management.core.windows.net), và không sử dụng lệnh ghép ngắn power-shell.Liệt kê Azure Virtual Machines qua REST API

Sử dụng lệnh ghép ngắn Tôi có thể chạy 'Get-AzureVM' và nhận danh sách tất cả các máy ảo có ServiceName, Name và Status mà không có bất kỳ sửa đổi nào. Vấn đề là tôi không thể tìm thấy bất cứ nơi nào trong tài liệu hướng dẫn cách liệt kê các máy ảo thông qua API.

Tôi đã xem qua nhiều Azure REST API khác nhau nhưng không thể tìm thấy bất kỳ thứ gì. Tài liệu cho VM REST API không hiển thị hoặc cung cấp chức năng danh sách.

Tôi có thiếu nguyên tắc cơ bản ở đâu đó không?

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

Đây là những gì tôi đang sử dụng làm cơ sở của yêu cầu. Tôi có thể nhận được một danh sách các dịch vụ được lưu trữ nhưng không phải là Máy ảo.

+0

Bạn có thể đi sâu vào chính các lệnh ghép ngắn PowerShell và xem chính xác cách chúng đang thực hiện. – JoeBrockhaus

Trả lời

7

Bạn sẽ cần có danh sách tất cả các Dịch vụ đám mây (Dịch vụ được lưu trữ) và sau đó là thuộc tính triển khai cho từng dịch vụ. Tìm kiếm triển khai trong môi trường/vùng sản xuất. Sau đó kiểm tra loại vai trò của "PersistentVMRole".

Máy ảo thực sự chỉ là một loại Dịch vụ đám mây, cùng với vai trò Web và Công nhân. Cổng thông tin quản lý Windows Azure và các lệnh ghép ngắn PowerShell tóm tắt điều này để giúp mọi thứ dễ hiểu và dễ hiểu hơn.

+0

Quyền - hãy xem 'Nhận Thuộc tính Dịch vụ được Lưu trữ' - tài liệu [tại đây] (http://msdn.microsoft.com/en-us/library/windowsazure/ee460806.aspx). –

+0

Thực ra, khi tôi liệt kê tất cả các dịch vụ, các máy ảo không được liệt kê. Chỉ các mục hiển thị trong 'Dịch vụ đám mây' trong bảng điều khiển dựa trên web. Họ có tên riêng biệt, vì vậy tôi chắc chắn về điều này. – maximumgeek

+0

Bất kỳ ý tưởng nào tại sao họ không cung cấp API trực tiếp để nhận VM vì thiết lập có hơn 500 dịch vụ đám mây sẽ mất rất nhiều thời gian để lấy danh sách VM. –

2

Thực hiện theo các bước này cho máy ảo niêm yết:

Danh sách
  1. HostedServices sử dụng sau ListHostedServices
  2. Đối với mỗi dịch vụ từ bên trên, a) GetDeployment bởi Môi trường (sản xuất, dàn dựng). HOẶC b) Nhận triển khai theo tên.
  3. Trong cả hai trường hợp, nhận giá trị cho Deployment.getRoleInstanceList(). GetRoleInstance(). GetInstanceName().