Удаление учетной записи хранения
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: