Поделиться через


Удаление учетной записи хранения

 

Delete Storage Account Асинхронная операция удаляет указанную учетную запись хранения.

Запрос

Delete Storage Account Запрос может быть указан следующим образом. Замените <subscription-id> своим Идентификатором подписки и <service-name> с именем учетной записи хранилища.

Метод URI запроса
УДАЛЕНИЕ https://management.core.windows.net/<subscription-id>/services/storageservices/<service-name>

Необходимо убедиться в том, что запрос к службе управления является безопасным. Дополнительные сведения см. в разделе Проверка подлинности запросов управления службами.

Параметры URI

Нет.

Заголовки запроса

Ниже перечислены заголовки запроса.

Заголовок запроса Описание
x-ms-version Обязательный параметр. Указывает версию операции, используемые для данного запроса. Значение этого заголовка должно быть присвоено 2011-06-01 или более поздней версии. Дополнительные сведения об управлении версиями заголовков см. в разделе Управление версиями службы управления.

Тело запроса

Нет.

Ответ

Ответ включает код состояния HTTP, набор заголовков ответа и текст ответа.

Код состояния

Успешная операция возвращает код состояния 200 (ОК). Сведения о кодах состояния см. в разделе состояние службы управления и коды ошибок.

Заголовки ответа

Ответ для этой операции включает следующие заголовки. Ответ может также включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

Заголовок ответа Описание
x-ms-request-id Значение, однозначно определяющее запрос к службе управления. Для асинхронной операции, можно вызвать Получение состояния операции со значением заголовка, чтобы определить, завершена ли операция, произошел сбой, или она все еще выполняется.

Текст ответа

Нет.

Примечания

Используйте Delete Storage Account операцию для удаления учетной записи хранения по имени. Невозможно восстановить данные, хранящиеся в удаленной учетной записи хранения, а имена учетных записей хранилища, которые были удалены, может быть использована для других пользователей.

Прежде чем удалить учетную запись хранилища, необходимо сначала удалить все образы ОС, образов виртуальных Машин и диски, расположенные в учетной записи. Асинхронные операции используются для удаления артефактов из учетной записи хранилища. Можно использовать Получение состояния операции операции, чтобы убедиться в том, что завершение операций перед попыткой удаления учетной записи хранилища. Он может занять до 15 минут для всех операций для завершения перед удалением учетной записи хранилища.

Пример

В следующем примере программа принимает идентификатор подписки, связанный отпечаток сертификата управления, версию операции и имя учетной записи хранения и вызовы Delete Storage Account операцию для удаления названной учетной записи хранения. Инициализация Version константы со строкой заголовка версии, SubscriptionId с идентификатором GUID для подписки, Thumbprint с вашей значение отпечатка сертификата управления и ServiceName с именем учетной записи хранения, удаляться, чтобы запустить пример кода.

using System;  
using System.Collections.Generic;  
using System.Net;  
using System.Security.Cryptography.X509Certificates;  
using System.Xml;  
using System.Xml.Linq;  
  
public class Program  
{  
    // Set these constants with your values to run the sample.  
    private const string Version = "2011-10-01";  
    private const string Thumbprint = "management-certificate-thumbprint";  
    private const string SubscriptionId = "subscription-id-guid";  
    private const string ServiceName = "storage-account-name";  
  
    /// <summary>  
    /// Gets or sets the certificate that matches the Thumbprint value.  
    /// </summary>  
    private static X509Certificate2 Certificate { get; set; }  
  
    static void Main(string[] args)  
    {  
        try  
        {  
            Certificate = GetCertificate(Thumbprint);  
  
            DeleteStorageAccount(SubscriptionId, ServiceName);  
            Console.WriteLine("Storage Account {0} deleted.", ServiceName);  
        }  
        catch (Exception ex)  
        {  
            Console.WriteLine("Exception caught in Main:");  
            Console.WriteLine(ex.Message);  
        }  
  
        Console.Write("Press any key to continue:");  
        Console.ReadKey();  
    }  
  
    /// <summary>  
    /// Calls the Delete Storage Account operation in the Service Management  
    /// REST API for the specified subscription and storage account name.  
    /// Throws an ApplicationException on status code results other than OK.  
    /// </summary>  
    /// <param name="subscriptionId">The subscription identifier.</param>  
    /// <param name="serviceName">The name of the storage account to delete.</param>  
    private static void DeleteStorageAccount(  
        string subscriptionId,  
        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 = "DELETE";  
        request.Headers.Add("x-ms-version", Version);  
        request.ClientCertificates.Add(Certificate);  
        request.ContentType = "application/xml";  
  
        XDocument responseBody = null;  
        HttpStatusCode statusCode = HttpStatusCode.Unused;  
        HttpWebResponse response;  
        try  
        {  
            response = (HttpWebResponse)request.GetResponse();  
        }  
        catch (WebException ex)  
        {  
            // GetResponse throws a WebException for 4XX and 5XX status codes  
            response = (HttpWebResponse)ex.Response;  
        }  
  
        try  
        {  
            statusCode = response.StatusCode;  
            if (response.ContentLength > 0)  
            {  
                using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))  
                {  
                    responseBody = XDocument.Load(reader);  
                }  
            }  
        }  
        finally  
        {  
            response.Close();  
        }  
  
        if (!statusCode.Equals(HttpStatusCode.OK))  
        {  
            throw new ApplicationException(string.Format(  
                "Call to {0} returned an error:{1}Status Code: {2} ({3}):{1}{4}",  
                uri.ToString(),  
                Environment.NewLine,  
                (int)statusCode,  
                statusCode,  
                responseBody.ToString(SaveOptions.OmitDuplicateNamespaces)));  
        }  
  
        return;  
    }  
  
    /// <summary>  
    /// Gets the certificate matching the thumbprint from the local store.  
    /// Throws an ArgumentException if a matching certificate is not found.  
    /// </summary>  
    /// <param name="thumbprint">The thumbprint of the certificate to find.</param>  
    /// <returns>The certificate with the specified thumbprint.</returns>  
    private 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));  
    }  
}  
  

Этот пример программы формирует результаты, аналогичные следующим:

Storage Account myexamplestorage1 deleted.  
Press any key to continue: