匯出 (0) 列印
全部展開

列出儲存體帳戶

更新日期: 2014年8月

List Storage Accounts作業會列出指定的訂閱中可用的儲存體帳戶。

請使用下列格式指定 List Storage Accounts 要求。以您的訂用帳戶識別碼取代 <subscription-id>

 

方法 要求 URI

GET

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

您必須確定對管理服務發出的要求是安全的。如需其他詳細資訊,請參閱驗證服務管理要求

無。

下表描述要求標頭。

 

要求標頭 描述

x-ms-version

必要項。指定用於這個要求的作業版本。此標頭應該設定為 2009/10/1 或更高版本。如需版本設定標頭的詳細資訊,請參閱服務管理版本設定

無。

回應包括 HTTP 狀態碼、一組回應標頭和回應主體。

成功的作業會傳回狀態碼 200 (確定)。

如需狀態碼的資訊,請參閱<服務管理狀態和錯誤碼>。

這項作業的回應包括下列標頭。回應也可能包括其他標準 HTTP 標頭。所有標準標頭都符合 HTTP/1.1 通訊協定規格

 

回應標頭 描述

x-ms-request-id

唯一識別對管理服務發出之要求的值。

回應主體的格式如下:


<?xml version="1.0" encoding="utf-8"?>
  <StorageServices xmlns=”http://schemas.microsoft.com/windowsazure”>
    <StorageService>
      <Url>storage-service-address</Url>
      <ServiceName>storage-service-name</ServiceName>
      <StorageServiceProperties>
        <Description>description</Description>
        <AffinityGroup>affinity-group</AffinityGroup>
        <Location>location-of-storage-account</Location>
        <Label>base64-encoded-label</Label>
        <Status>status</Status>
        <Endpoints>
          <Endpoint>storage-service-blob-endpoint</Endpoint>
          <Endpoint>storage-service-queue-endpoint</Endpoint>
          <Endpoint>storage-service-table-endpoint</Endpoint>
          <Endpoint>storage-service-file-endpoint</Endpoint>
        </Endpoints>
        <GeoReplicationEnabled>geo-replication-indicator</GeoReplicationEnabled>
        <GeoPrimaryRegion>primary-region</GeoPrimaryRegion>
        <StatusOfPrimary>primary-status</StatusOfPrimary>
        <LastGeoFailoverTime>DateTime</LastGeoFailoverTime>
        <GeoSecondaryRegion>secondary-region</GeoSecondaryRegion>
        <StatusOfSecondary>secondary-status</StatusOfSecondary>
        <CreationTime>time-of-creation</CreationTime>
        <CustomDomains>
          <CustomDomain>
            <Name>name-of-custom-domain</Name>
          </CustomDomain>
        </CustomDomains>
        <SecondaryReadEnabled>secondary-read-indicator</SecondaryReadEnabled>
        <SecondaryEndpoints>
          <Endpoint>storage-secondary-service-blob-endpoint</Endpoint>
          <Endpoint>storage-secondary-service-queue-endpoint</Endpoint>
          <Endpoint>storage-secondary-service-table-endpoint</Endpoint>
        </SecondaryEndpoints>
        <AccountType>type-of-storage-account</AccountType>
      </StorageServiceProperties>
      <ExtendedProperties>
        <ExtendedProperty>
          <Name>property-name</Name>
          <Value>property-value</Value>
        </ExtendedProperty>
      </ExtendedProperties>
    </StorageService>
  </StorageServices>

下表描述回應本文的元素。

 

元素名稱 描述

URL

指定儲存體帳戶的 URI。

ServiceName

指定儲存體帳戶的名稱。這個名稱是 DNS 首碼名稱,可用來存取儲存體帳戶中的 Blob、佇列和資料表。

例如,如果服務名稱是 MyStorageAccount,您就可以透過呼叫以下項目來存取 Blob 容器:http://MyStorageAccount.blob.core.windows.net/mycontainer/

StorageServiceProperties

指定儲存體帳戶的屬性。

ExtendedProperties

指定已加入至儲存體帳戶之擴充屬性的名稱和值。

指定儲存體帳戶的屬性。

 

元素名稱 描述

描述

選擇性。儲存體帳戶的描述。描述的長度最多可以有 1024 個字元。

必須使用 2012/3/1 版或更高版本,才能使用 Description 元素。

AffinityGroup

如果沒有指定 Location,則為必要項目。與這個訂閱相關聯之現有同質群組的名稱。這個名稱是 GUID,而且您可以透過檢查 列出同質群組 作業所傳回之回應主體的 Name 元素,擷取這個名稱。

必須使用 2012/3/1 版或更高版本,才能使用 AffinityGroup 元素。

位置

如果沒有指定 AffinityGroup,則為必要項目。即將建立儲存體帳戶的位置。

必須使用 2012/3/1 版或更高版本,才能使用 Location 元素。

Label

必要項。託管服務的 Base-64 編碼格式名稱。名稱的長度最多可以有 100 個字元。在您進行追蹤時,此名稱可用來識別儲存體帳戶。

必須使用 2012/3/1 版或更高版本,才能使用 Label 元素。

狀態

儲存體帳戶的狀態。可能的值為:

  • Creating

  • Created

  • Deleting

  • Deleted

  • Changing

  • ResolvingDns

必須使用 2012/3/1 版或更高版本,才能使用 Status 元素。

端點

指定儲存體帳戶的端點。

GeoReplicationEnabled

指出儲存體帳戶中的資料是否在多個地理位置之間複寫,以便在面臨重大服務中斷的情況時啟用恢復功能。如果已啟用地理複寫,此值為 true,否則為 false

GeoReplicationEnabled 元素只在 2012-03-01 版或更新版本中可用,在 2014-06-01 版或更新版本中由 AccountType 元素取代。

GeoPrimaryRegion

表示儲存體帳戶目前所在的主要地理區域。

必須使用 2012/3/1 版或更高版本,才能使用 GeoPrimaryRegion 元素。

StatusOfPrimary

指出主要儲存體地區是否可用。

可能的值為:

  • Available

  • Unavailable

必須使用 2013/11/1 版或更高版本,才能使用 StatusOfPrimary 元素。

LastGeoFailoverTime

表示容錯移轉至次要地區之最新執行個體的時間戳記。如果有多次容錯移轉,只會保留最新的容錯移轉日期和時間。

傳回的時間戳記格式如下:[4DigitYear]-[2DigitMonth]-[2DigitDay]T[2DigitMinute]:[2DigitSecond]:[7DigitsOfPrecision]Z

例如:<LastGeoFailoverTime>2010-01-18T13:15:30.0000000Z</LastGeoFailoverTime>

如果沒有容錯移轉的執行個體,就不會傳回 LastGeoFailoverTime。

必須使用 2012/3/1 版或更高版本,才能使用 LastGeoFailoverTime 元素。

GeoSecondaryRegion

表示正在複寫儲存體帳戶的地理區域。

如果此帳戶的地理複寫為「關閉」,就不會傳回 GeoSecondaryRegion 元素。

必須使用 2012/3/1 版或更高版本,才能使用 GeoSecondaryRegion 元素。

StatusOfSecondary

指出次要儲存體地區是否可用。

必須使用 2013/11/1 版或更高版本,才能使用 StatusOfSecondary 元素。

可能的值為:

  • Available

  • Unavailable

CreationTime

指定建立儲存體帳戶的時間。

CustomDomains

指定與儲存體帳戶相關聯的自訂網域。

必須使用 2013/6/1 版或更高版本,才能使用 CustomDomains 元素。

SecondaryReadEnabled

指出儲存體帳戶已啟用次要讀取。

可能的值為:

  • true

  • false

SecondaryReadEnabled 元素只在 2013-11-01 版或更新版本中可用,在 2014-06-01 版或更新版本中由 AccountType 元素取代。

SecondaryEndpoints

指定儲存體帳戶的次要端點。

必須使用 2013/11/1 版或更高版本,才能使用 SecondaryEndpoints 元素。

AccountType

指定帳戶是否支援本機備援儲存體、地理備援儲存體、區域備援儲存體或讀取權限地理備援儲存體。

可能的值為:

  • Standard_LRS

  • Standard_ZRS

  • Standard_GRS

  • Standard_RAGRS

AccountType 元素只在 2014-06-01 版或更新版本中可用,並取代 SecondaryReadEnabled 和 GeoReplicationEnabled 元素。

指定儲存體帳戶的端點。

 

元素名稱 描述

Endpoint

包含採用下列格式的 Blob 服務端點:https://<storage-service-name>.blob.core.windows.net

必須使用 2012/3/1 版或更高版本,才能使用 Endpoint 元素。HTTP 端點是使用 2014-04-01 版或更低版本傳回。

Endpoint

包含採用下列格式的佇列服務端點:https://<storage-service-name>.queue.core.windows.net

必須使用 2012/3/1 版或更高版本,才能使用 Endpoint 元素。HTTP 端點是使用 2014-04-01 版或更低版本傳回。

Endpoint

包含採用下列格式的表格服務端點:https://<storage-service-name>.table.core.windows.net

必須使用 2012/3/1 版或更高版本,才能使用 Endpoint 元素。HTTP 端點是使用 2014-04-01 版或更低版本傳回。

Endpoint

包含採用下列格式的檔案服務端點:https://<storage-service-name>.file.core.windows.net

必須使用 2012/3/1 版或更高版本,才能使用 Endpoint 元素。HTTP 端點是使用 2014-04-01 版或更低版本傳回。

指定與儲存體帳戶相關聯的自訂網域。

 

元素名稱 描述

CustomDomain

指定與儲存體帳戶相關聯之自訂網域的相關資訊。

名稱

指定自訂網域的名稱。

指定儲存體帳戶的次要端點。

 

元素名稱 描述

Endpoint

包含採用下列格式的 Blob 次要服務端點:https://<storage-secondary-service-name>.blob.core.windows.net

HTTP 端點是使用 2014-04-01 版或更低版本傳回。

Endpoint

包含採用下列格式的佇列服務端點:https://<storage-secondary-service-name>.queue.core.windows.net

HTTP 端點是使用 2014-04-01 版或更低版本傳回。

Endpoint

包含採用下列格式的表格服務端點:https://<storage-secondary-service-name>.table.core.windows.net

HTTP 端點是使用 2014-04-01 版或更低版本傳回。

指定已加入至儲存體帳戶之擴充屬性的名稱和值。

 

元素名稱 描述

名稱

選擇性。代表擴充儲存體帳戶屬性的名稱。每個擴充屬性都必須具有已定義的名稱和值。您最多可以擁有 50 個擴充屬性名稱/值組。

Name 元素的長度上限為 64 個字元、只有英數字元和底線可用於 Name,而且名稱必須以字母當做開頭。如果您嘗試使用其他字元、以非字母字元當做 Name 的開頭,或者輸入的名稱與相同儲存體帳戶所擁有之其他擴充屬性的名稱完全相同,就會產生狀態碼 400 (不正確的要求) 錯誤。

必須使用 2012/3/1 版或更高版本,才能使用 Name 元素。

選擇性。代表擴充儲存體帳戶屬性的值。每個擴充屬性都必須具有已定義的名稱和值。您最多可以擁有 50 個擴充屬性名稱/值組,而且每個擴充屬性值的長度上限為 255 個字元。

必須使用 2012/3/1 版或更高版本,才能使用 Value 元素。

如果 x-ms-version 是 2012-03-01 或更新版本,而且同質群組建立在其中一個已被取代的 Anywhere USAnywhere EuropeAnywhere Asia 地區中,Location 元素就會傳回這個同質群組目前的配置位置。

List Storage Accounts 作業可用來取得要用於儲存體帳戶之其他作業的 URI,例如 取得儲存體帳戶屬性取得儲存體帳戶金鑰刪除儲存體帳戶更新儲存體帳戶

下列範例程式會採用訂用帳戶識別碼、相關聯的管理憑證指紋及作業版本字串,並且將儲存體帳戶的清單列印到主控台。使用您自己的值來初始化 msVersionsubscriptionIdthumbprint 變數,以便執行範例程式碼。這個範例會使用 x-ms-version 2011-10-01。

using System;
using System.Collections.Generic;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Xml;
using System.Xml.Linq;
 
class Program
{
  static void Main(string[] args)
  {
    string msVersion = "2011-10-01";
    string subscriptionId = "subscription-id-guid";
    string thumbprint = "certificate-thumbprint";
    try
    {
      // Obtain the certificate with the specified thumbprint
      X509Certificate2 certificate = GetCertificate(thumbprint);
      ListStorageAccountsExample(subscriptionId, certificate, msVersion);
    }
    catch (Exception ex)
    {
      Console.WriteLine("Exception caught in Main:");
      Console.WriteLine(ex.Message);
    }
  }
 
  public static X509Certificate2 GetCertificate(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));
  }
 
  public static void ListStorageAccountsExample(
    string subscriptionId,
    X509Certificate2 certificate,
    string version)
  {
    string uriFormat = "https://management.core.windows.net/{0}/services/storageservices";
    Uri uri = new Uri(String.Format(uriFormat, subscriptionId));
 
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
    request.Method = "GET";
    request.Headers.Add("x-ms-version", version);
    request.ClientCertificates.Add(certificate);
    request.ContentType = "application/xml";
 
    XDocument responseBody = null;
    HttpStatusCode statusCode;
    HttpWebResponse response;
    try
    {
      response = (HttpWebResponse)request.GetResponse();
    }
    catch (WebException ex)
    {
      // GetResponse throws a WebException for 400 and 500 status codes
      response = (HttpWebResponse)ex.Response;
    }
    statusCode = response.StatusCode;
    if (response.ContentLength > 0)
    {
      using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))
      {
        responseBody = XDocument.Load(reader);
      }
    }
    response.Close();
    if (statusCode.Equals(HttpStatusCode.OK))
    {
      XNamespace wa = "http://schemas.microsoft.com/windowsazure";
      XElement storageServices = responseBody.Element(wa + "StorageServices");
      int storageCount = 0;
      foreach (XElement storageService in storageServices.Elements(wa + "StorageService"))
      {
        string url = storageService.Element(wa + "Url").Value;
        string serviceName = storageService.Element(wa + "ServiceName").Value;
        Console.WriteLine(
          "Location[{0}]{1}  Name: {2}{1}  DisplayName: {3}",
          storageCount++, Environment.NewLine, url, serviceName);
      }
    }
    else
    {
      Console.WriteLine("Call to List Storage Accounts returned an error:");
      Console.WriteLine("Status Code: {0} ({1}):{2}{3}",
        (int)statusCode, statusCode, Environment.NewLine,
        responseBody.ToString(SaveOptions.OmitDuplicateNamespaces));
    }
    return;
  }
}

顯示:
© 2014 Microsoft