导出 (0) 打印
全部展开

列出云服务

更新时间: 2014年5月

List Cloud Services 操作列出指定订阅下可用的云服务。

可以按以下方式指定 List Cloud Services 请求。请将 <subscription-id> 替换为你的订阅 ID。

 

方法 请求 URI

GET

https://management.core.windows.net/<subscription-id>/services/hostedservices

你必须确保向管理服务发出的请求是安全的。有关其他详细信息,请参见对服务管理请求进行身份验证

无。

下表介绍请求标头。

 

请求标头 说明

x-ms-version

必需。指定用于此请求的操作的版本。应将此标头设置为 2009/10/1 或更高版本。有关版本控制标头的更多信息,请参阅服务管理版本控制

x-ms-continuation-token

可选。指定继续标记,使用该标记可以在有比在分配的时间内返回的结果更多的云服务可列出时获得响应的剩余部分。此标记的值在前一个响应的标头中返回,并仅在需要列出更多云服务时才返回。

无。

响应包括 HTTP 状态代码、一组响应标头和响应正文。

此操作成功后返回状态代码 200(正常)。有关状态代码的信息,请参阅服务管理状态和错误代码

此操作的响应包括以下标头。该响应还可能包括其他标准 HTTP 标头。所有标准标头均符合 HTTP/1.1 协议规范

 

响应标头 说明

x-ms-request-id

指定一个值,该值唯一标识针对管理服务发出的请求。

x-ms-continuation-token

指定继续标记,使用该标记可以在有比在分配的时间内返回的结果更多的云服务可列出时获得响应的剩余部分。如果在订阅中存在大量云服务,则并非所有云服务都可以在单个响应中列出。你可以在后续操作请求中使用此标头中的标记,直到返回所有云服务。

响应正文的格式如下所示:


<?xml version="1.0" encoding="utf-8"?>
  <HostedServices xmlns=”http://schemas.microsoft.com/windowsazure”>
    <HostedService>
      <Url>address-of-cloud-service</Url>
      <ServiceName>name-of-cloud-service</ServiceName>
      <HostedServiceProperties>
        <Description>description-of-cloud-service</Description>
        <AffinityGroup>name-of-affinity-group</AffinityGroup>
        <Location>location-of-cloud-service</Location>
        <Label>label-of-cloud-service</Label>
        <Status>status-of-cloud-service</Status>
        <DateCreated>date-created</DateCreated>
        <DateLastModified>date-modified</DateLastModified>
        <ExtendedProperties>
          <ExtendedProperty>
            <Name>name-of-property-name</Name>
            <Value>value-of-property</Value>
          </ExtendedProperty>
        </ExtendedProperties>
        <ComputeCapabilities>
          <VirtualMachineRoleSizes>
            <RoleSize>role-size-name</RoleSize>
          </VirtualMachineRoleSizes>
          <WebWorkerRoleSizes>
            <RoleSize>role-size-name</RoleSize>
          </WebWorkerRoleSizes>
        </ComputeCapabilities>
      </HostedServiceProperties>
      <DefaultWinRMCertificateThumbprint>certificate-thumbprint-for-winrm</DefaultWinRMCertificateThumbprint>
    </HostedService>
  </HostedServices>

下表介绍响应正文的元素。

 

元素名称 说明

Url

指定用于获取有关云服务信息的请求 URI。

ServiceName

指定云服务的名称。此名称是 DNS 前缀名称,可用于访问该服务。

例如,如果服务名称是 MyService,则可以通过调用以下网页访问该服务:http:// MyService.cloudapp.net

说明

指定云服务的说明。

仅在 01.03.12 版或更高版本中才可以使用 Description 元素。

AffinityGroup

指定与此云服务关联的地缘组(如有)。如果此服务与某个地缘组关联,则不返回 Location 元素。

仅在 01.03.12 版或更高版本中才可以使用 AffinityGroup 元素。

位置

指定 Azure 中云服务的地理位置(如果服务不与地缘组关联)。如果指定了位置,则不返回 AffinityGroup 元素。

仅在 01.03.12 版或更高版本中才可以使用 Location 元素。

Label

指定云服务的 Base-64 编码的标识符。此标识符可用于跟踪用途。

仅在 01.03.12 版或更高版本中才可以使用 Label 元素。

状态

指定云服务的状态。可能的值有:

  • Creating

  • Created

  • Deleting

  • Deleted

  • Changing

  • ResolvingDns

仅在 01.03.12 版或更高版本中才可以使用 Status 元素。

DateCreated

指定创建云服务的日期,格式为 [4DigitYear]-[2DigitMonth]-[2DigitDay]T[2DigitHour]:[2DigitMinute]:[2DigitSecond]Z。日期 2011-05-11T16:15:26Z 是 DateCreatedDateLastModified 元素可返回的一个示例。

仅在 01.03.12 版或更高版本中才可以使用 DateCreated 元素。

DateLastModified

指定上次更新云服务的日期,格式为 [4DigitYear]-[2DigitMonth]-[2DigitDay]T[2DigitHour]:[2DigitMinute]:[2DigitSecond]Z。日期 2011-05-11T16:15:26Z 是 DateCreatedDateLastModified 元素可返回的一个示例

仅在 01.03.12 版或更高版本中才可以使用 DateLastModified 元素。

Name

指定某个扩展的云服务属性的名称。每个扩展属性都必须有定义的名称和值。最多可以定义 50 个扩展属性。

仅在 01.03.12 版或更高版本中才可以使用 Name 元素。

表示某个扩展的云服务属性的值。扩展属性值的长度最多是 255 个字符。

仅在 01.03.12 版或更高版本中才可以使用 Value 元素。

DefaultWinRMCertificateThumbprint

指定使用 WinRM 的安全连接的默认证书。如果在云服务中部署虚拟机时没有为 WinRM 指定证书指纹,则将自动创建证书,指纹作为此元素的值列出。有关定义 WinRM 的详细信息,请参见创建虚拟机部署添加角色

ComputeCapabilities

指定可用于云服务中的部署的角色大小。可用角色大小由云服务支持的资源定义。例如,Web 角色和辅助角色的部署的可用大小可能与虚拟机部署不同。有关角色大小的详细信息,请参阅 Azure 的虚拟机和云服务大小

仅在 01.05.14 版或更高版本中才可以使用 ComputeCapabilities 元素。

指定可用于云服务中的部署的角色大小。

 

元素名称 说明

VirtualMachineRoleSizes

包含 RoleSize 元素的集合。

WebWorkerRoleSizes

包含 RoleSize 元素的集合。

RoleSize

指定可用于部署类型的角色大小。

如果 x-ms-version 版本低于 2012-03-01,则将不返回包含虚拟机部署的云服务。

你可以查看订阅中存在的云服务,方法是在管理门户的“云服务”部分中查找。还可以使用 Get-AzureService cmdlet 获取云服务的列表。

以下示例控制台程序列出订阅中存在的云服务:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Net;

namespace ListCloudServices
{
  class Program
  {
    private const string Thumbprint = "thumbprint-of-management-certificate";
    private const string SubscriptionId = "subscription-identifier";
    private const string Version = "API-version-number";

    // Gets or sets the certificate that matches the Thumbprint value.
    private static X509Certificate2 Certificate { get; set; }
        
    static void Main(string[] args)
    {
      Certificate = GetStoreCertificate(Thumbprint);
      
      // Create the URI
      string uriFormat = "https://management.core.windows.net/{0}/services/hostedservices";
      Uri uri = new Uri(String.Format(uriFormat, SubscriptionId));
      
      // Submit the request and get the response
      XDocument responseBody;
      HttpWebResponse response = InvokeRequest(uri, "GET", out responseBody);

      HttpStatusCode statusCode = statusCode = response.StatusCode;
      Console.WriteLine("The status of the operation: {0}\n\n", statusCode.ToString());
      Console.WriteLine(responseBody.ToString(SaveOptions.OmitDuplicateNamespaces));
      Console.Write("Press any key to continue:");
      Console.ReadKey();
    }
    // Process the request
    private static HttpWebResponse InvokeRequest(
      Uri uri,
      string method,
      out XDocument responseBody)
    {
      HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
      request.Method = method;
      request.Headers.Add("x-ms-version", Version);
      request.ClientCertificates.Add(Certificate);
      request.ContentType = "application/xml";

      responseBody = null;
      HttpWebResponse response;
      try
      {
        response = (HttpWebResponse)request.GetResponse();
      }
      catch (WebException ex)
      {
        response = (HttpWebResponse)ex.Response;
      }
      XmlReaderSettings settings = new XmlReaderSettings();
      settings.DtdProcessing = DtdProcessing.Ignore;
      if (response.ContentLength > 0)
      {
        using (XmlReader reader = XmlReader.Create(response.GetResponseStream(), settings))
        {
          try
          {
            responseBody = XDocument.Load(reader);
          }
          catch
          {
            responseBody = null;
          }
        }
      }
      response.Close();
      return response;
    }
    
    // Get the certificate
    private static X509Certificate2 GetStoreCertificate(string thumbprint)
    {
      List<StoreLocation> locations = new List<StoreLocation>
      { 
        StoreLocation.CurrentUser, 
        StoreLocation.LocalMachine
      };

      foreach (var location in locations)
      {
        X509Store store = new X509Store("My", location);
        try
        {
          store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
          X509Certificate2Collection certificates = store.Certificates.Find(
          X509FindType.FindByThumbprint, thumbprint, false);
          if (certificates.Count == 1)
          {
            return certificates[0];
          }
        }
        finally
        {
          store.Close();
        }
      }
      throw new ArgumentException(string.Format(
        "A Certificate with Thumbprint '{0}' could not be located.",
        thumbprint));
    }
  }
}

显示:
© 2014 Microsoft