匯出 (0) 列印
全部展開

取得儲存體帳戶屬性

更新日期: 2014年5月

Get Storage Account Properties 作業會傳回指定之儲存體帳戶的系統屬性。

請使用下列格式指定 Get Storage Account Properties 要求。以您的訂用帳戶識別碼取代 <subscription-id>,並以儲存體帳戶的名稱取代 <storage-account-name>

 

方法 要求 URI

GET

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

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

無。

下表描述要求標頭。

 

要求標頭 描述

x-ms-version

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

無。

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

成功的作業會傳回狀態碼「200 (OK)」。如需狀態碼的資訊,請參閱服務管理狀態和錯誤碼

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

 

回應標頭 描述

x-ms-request-id

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

回應主體的格式如下:


<?xml version="1.0" encoding="utf-8"?>
<StorageService xmlns="http://schemas.microsoft.com/windowsazure">
 <Url>storage-account-request-uri</Url>
 <ServiceName>storage-account-name</ServiceName>
 <StorageServiceProperties>
  <Description>description</Description>
  <AffinityGroup>affinity-group</AffinityGroup>
  <Location>location</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>
  </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>
 </StorageServiceProperties>
 <ExtendedProperties>
  <ExtendedProperty>
   <Name>property-name</Name>
   <Value>property-value</Value>
  </ExtendedProperty>
 </ExtendedProperties>
 <Capabilities>
  <Capability>storage-account-capability</Capability>
 </Capabilities>
</StorageService>

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

 

元素名稱 描述

URL

指定儲存體帳戶的 URI。

ServiceName

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

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

StorageServiceProperties

指定儲存體帳戶的屬性。

ExtendedProperties

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

Capability

指出儲存體帳戶是否能夠執行虛擬機器的相關作業。如果可以,此元素就會傳回包含 PersistentVMRole 的字串。否則,此元素就不會存在。

必須使用 2012-03-01 版或更高版本,才能使用 Capability 元素。

指定儲存體帳戶的屬性。

 

元素名稱 描述

Description

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

必須使用 2012-03-01 版或更高版本,才能使用 Description 元素。

AffinityGroup

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

必須使用 2012-03-01 版或更高版本,才能使用 AffinityGroup 元素。

Location

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

必須使用 2012-03-01 版或更高版本,才能使用 Location 元素。

Label

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

必須使用 2012-03-01 版或更高版本,才能使用 Label 元素。

Status

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

  • Creating

  • Created

  • Deleting

  • Deleted

  • Changing

  • ResolvingDns

必須使用 2012-03-01 版或更高版本,才能使用 Status 元素。

Endpoints

指定儲存體帳戶的端點。

GeoReplicationEnabled

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

必須使用 2012-03-01 版或更高版本,才能使用 GeoReplicationEnabled 元素。

GeoPrimaryRegion

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

必須使用 2012-03-01 版或更高版本,才能使用 GeoPrimaryRegion 元素。

StatusOfPrimary

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

可能的值為:

  • Available

  • Unavailable

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

LastGeoFailoverTime

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

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

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

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

必須使用 2012-03-01 版或更高版本,才能使用 LastGeoFailoverTime 元素。

GeoSecondaryRegion

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

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

必須使用 2012-03-01 版或更高版本,才能使用 GeoSecondaryRegion 元素。

StatusOfSecondary

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

可能的值為:

  • Available

  • Unavailable

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

CreationTime

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

CustomDomains

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

必須使用 2013-06-01 版或更高版本,才能使用 CustomDomains 元素。

SecondaryReadEnabled

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

可能的值為:

  • true

  • false

必須使用 2013-11-01 版或更高版本,才能使用 SecondaryReadEnabled 元素。

SecondaryEndpoints

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

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

指定儲存體帳戶的端點。

 

元素名稱 描述

Endpoint

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

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

Endpoint

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

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

Endpoint

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

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

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

 

元素名稱 描述

CustomDomain

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

Name

指定自訂網域的名稱。

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

 

元素名稱 描述

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 版或更低版本傳回。

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

 

元素名稱 描述

Name

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

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

必須使用 2012-03-01 版或更高版本,才能使用 Name 元素。

Value

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

必須使用 2012-03-01 版或更高版本,才能使用 Value 元素。

您可以在建立或更新儲存體帳戶時啟用地理複寫。

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

下列範例程式會採用訂用帳戶識別碼、相關聯的管理憑證指紋、作業版本字串和儲存體帳戶名稱,並且將傳回的儲存體帳戶屬性列印到主控台。使用您自己的值來初始化 msVersionsubscriptionIdthumbprintserviceName 變數,以便執行範例程式碼。

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-12-01";
        string subscriptionId = "subscription-id-guid";
        string thumbprint = "certificate-thumbprint";
        string serviceName = "myexamplestorage1";
        try
        {
            // Obtain the certificate with the specified thumbprint
            X509Certificate2 certificate = GetCertificate(thumbprint);
            GetStorageAccountPropertiesExample(
                subscriptionId, certificate, msVersion, serviceName);
        }
        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 GetStorageAccountPropertiesExample(
        string subscriptionId,
        X509Certificate2 certificate,
        string version,
        string serviceName)
    {
        string uriFormat = "https://management.core.windows.net/{0}/services/storageservices/{1}";
        Uri uri = new Uri(String.Format(uriFormat, subscriptionId, serviceName));
 
        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 storageService = responseBody.Element(wa + "StorageService");
            Console.WriteLine(
                "Storage Account Properties for {0}:{1}{2}",
                serviceName, Environment.NewLine, 
                storageService.ToString(SaveOptions.OmitDuplicateNamespaces));
        }
        else
        {
            Console.WriteLine("Call to GetStorageAccountProperties returned an error:");
            Console.WriteLine("Status Code: {0} ({1}):{2}{3}",
                (int)statusCode, statusCode, Environment.NewLine,
                responseBody.ToString(SaveOptions.OmitDuplicateNamespaces));
        }
        return;
    }
}

顯示:
© 2014 Microsoft