Exporter (0) Imprimer
Développer tout

Suppression d'un compte de stockage

Mis à jour: février 2015

L'opération Delete Storage Account asynchrone supprime le compte de stockage spécifié.

La demande Delete Storage Account peut être spécifiée comme suit. Remplacez <subscription-id> par votre ID d'abonnement et <service-name> par le compte de stockage.

 

Méthode URI de demande

SUPPRIMER

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

Vous devez vous assurer que la demande adressée au service de gestion est sécurisée. Pour plus de détails, consultez Authentification des demandes de gestion des services.

Le tableau suivant décrit les en-têtes de la demande.

 

En-tête de demande Description

x-ms-version

Obligatoire. Spécifie la version de l'opération à utiliser pour cette demande. La valeur de cet en-tête doit être la version 01.06.11 ou une version ultérieure. Pour plus d'informations sur les en-têtes du suivi de version, consultez Contrôle de version du service de gestion.

La réponse inclut un code d'état HTTP, un ensemble d'en-têtes de réponse et un corps de réponse.

Une opération ayant réussi renvoie le code d'état 200 (OK). Pour plus d'informations sur les codes d'état, consultez Codes d'état et d'erreur de la gestion des services.

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

 

En-tête de réponse Description

x-ms-request-id

Valeur qui identifie de façon unique une demande effectuée au service de gestion. Pour une opération asynchrone, vous pouvez appeler Obtention de l'état d'une opération avec la valeur de l'en-tête pour déterminer si l'opération est terminée, si elle a échoué ou si elle est toujours en cours.

Utilisez l'opération Delete Storage Account pour supprimer un compte de stockage par nom. Les données stockées dans un compte de stockage supprimé ne peuvent pas être récupérées, et les noms des comptes de stockage supprimés peuvent être adoptés par d'autres utilisateurs.

Avant de supprimer un compte de stockage, vous devez supprimer l'ensemble des images de système d'exploitation, images de machine virtuelle et disques figurant dans le compte. Des opérations asynchrones sont utilisées pour supprimer les artefacts d'un compte de stockage. L'opération Obtention de l'état d'une opération permet de s'assurer que les opérations sont terminées avant de tenter de supprimer le compte de stockage. L'achèvement de toutes les opérations avant de pouvoir supprimer le compte de stockage peut prendre jusqu'à 15 minutes.

L'exemple de programme suivant prend l'identificateur d'abonnement, une empreinte numérique de certificat de gestion associée, la chaîne de version d'opération et un nom de compte de stockage, et appelle l'opération Delete Storage Account pour supprimer le compte de stockage nommé. Remplacez la constante Version par une chaîne d'en-tête de version, SubscriptionId par l'identificateur de GUID pour l'abonnement, Thumbprint par la valeur de votre empreinte numérique de certificat de gestion, et ServiceName par le nom de votre compte de stockage à supprimer, pour exécuter l'exemple de code.

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

Cet exemple de programme génère des résultats similaires à ce qui suit :

Storage Account myexamplestorage1 deleted.
Press any key to continue:

Afficher:
© 2015 Microsoft