Excluir conta de armazenamento

 

O Delete Storage Account operação assíncrona exclui a conta de armazenamento especificado.

Solicitação

O Delete Storage Account solicitação pode ser especificada da seguinte maneira. Substitua <subscription-id> pela sua ID de assinatura, e <service-name> com o nome da conta de armazenamento.

Método URI de solicitação
EXCLUIR https://management.core.windows.net/<subscription-id>/services/storageservices/<service-name>

Você deve certificar-se de que a solicitação é feita ao serviço de gerenciamento seja segura. Para obter detalhes adicionais, consulte autenticar solicitações de gerenciamento de serviço.

Parâmetros de URI

Nenhum.

Cabeçalhos de solicitação

A tabela a seguir descreve os cabeçalhos de solicitação.

Cabeçalho da solicitação Descrição
x-ms-version Necessário. Especifica a versão da operação a ser usada para esta solicitação. O valor desse cabeçalho deve ser definido como 2011-06-01 ou superior. Para obter mais informações sobre cabeçalhos de controle de versão, consulte o controle de versão do serviço de gerenciamento.

Corpo da solicitação

Nenhum.

Resposta

A resposta inclui um código de status HTTP, um conjunto de cabeçalhos de resposta e um corpo de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 200 (OK). Para obter informações sobre códigos de status, consulte Status do gerenciamento de serviço e códigos de erro.

Cabeçalhos de resposta

A resposta para essa operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos padrão HTTP adicionais. Todos os cabeçalhos padrão obedecem a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
x-ms-request-id Um valor que identifica exclusivamente uma solicitação feita no serviço de gerenciamento. Para uma operação assíncrona, você pode chamar Obter Status da operação com o valor do cabeçalho para determinar se a operação for concluída, falhou ou ainda está em andamento.

Corpo da resposta

Nenhum.

Comentários

Use o Delete Storage Account operação para excluir uma conta de armazenamento por nome. Dados armazenados em uma conta de armazenamento excluída não podem ser recuperados e nomes de conta de armazenamento que foram excluídos podem ser adotados por outros usuários.

Antes de excluir uma conta de armazenamento, você deve primeiro excluir todas as imagens do sistema operacional, imagens da VM e discos que estão localizados na conta. Operações assíncronas são usadas para excluir artefatos de uma conta de armazenamento. Você pode usar o Obter Status da operação operação para certificar-se de que as operações foram concluídas antes de tentar excluir a conta de armazenamento. Ele pode levar até 15 minutos para todas as operações concluir antes de excluir a conta de armazenamento.

Exemplo

O programa de exemplo a seguir usa o identificador de assinatura, uma impressão digital certificado de gerenciamento associado, a versão da operação e um nome de conta de armazenamento e chamadas de Delete Storage Account operação para remover a conta de armazenamento nomeado. Inicializar o Version constante com uma cadeia de caracteres de cabeçalho de versão SubscriptionId com o identificador GUID para a assinatura, Thumbprint com o valor de impressão digital do certificado de gerenciamento, e ServiceName com o nome da conta de armazenamento a ser excluída para executar o código de exemplo.

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));  
    }  
}  
  

Este programa de exemplo gera resultados semelhantes ao seguinte:

Storage Account myexamplestorage1 deleted.  
Press any key to continue: